5.17领扣--Arrays.copyOf()方法
??
给定一个整数数组 nums
和一个目标值 target
,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例:
给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
?????
class Solution {
public int[] twoSum(int[] nums, int target) {
//创建一个存放2个索引的数组,数组长度为2.
int[] r1 = new int[2];
//复制一个一摸一样的数组r2.
int[] r2 = Arrays.copyOf(nums, nums.length);
//排序参数中的数组,是从小到大进行排序.
Arrays.sort(nums);
//定义一个整数变量,等于数组的长度减1
int j = nums.length - 1;
//if判断数组长度减一减一后对应的索引对应的值“+”数组长度减一对应的索引对应的值如果
//---说大于等于target的话可以进行下一步的操作
if ((nums[j - 1] + nums[j]) >= target) {
//if判断数组长度减一减一后对应的索引对应的值“+”数组长度减一对应的索引对应的值
//---说等于target的话可以进行下一步操作
if ((nums[j - 1] + nums[j]) == target) {//倒数第二+倒数第三
//定义两个boolean类型add---add2
Boolean add = false;
Boolean add2 = false;
//for循环遍历没有排序的(原封复制参数数组)r2
for (int q = 0; q <= r2.length - 1; q++) {
//if判断数组长度减一减一后对应的索引对应的值(排序过的参数数组)对应的值如果“等 //---于”r2数组的索引对应的值
//r2中的第一个索引
if (nums[j - 1] == r2[q] && !add) {//!!!!!!!!!!注意这个感叹号
r1[0] = q;
add = true;
continue;
}
//r2中的第二个索引
if (nums[j] == r2[q] && !add2) {
r1[1] = q;
add2 = true;
continue;
}
if (add && add2) {
break;
}
}
} else {
//遍历循环j是数组长度减一后的值0123=4即变化成123=3长度
for (int i = 0; i <= j; ) {//j=4-1=3长度
if ((nums[i] + nums[j]) == target) {//排序后的数组
//变成true跳出用
Boolean add = false;
Boolean add2 = false;
for (int q = 0; q <= r2.length - 1; q++) {//遍历没有排序的数组
if (nums[i] == r2[q] && !add) {
r1[0] = q;
add = true;
continue;
}
if (nums[j] == r2[q] && !add2) {
r1[1] = q;
add2 = true;
continue;
}
if (add2 && add) {
break;
}
}
break;
}
if ((nums[i] + nums[j]) < target) {//判断排序的数组【i前j后】---slse下的for //---内部
i++;//****注意这里i++即i+1因为for循环中没有i++****
//因为排序且小于目标所以i(前)需要++,得到i索引对应的大的的值
continue;
}
;
if ((nums[i] + nums[j]) > target) {
j--;
continue;
}
}
}
}
return r1;
}
}
1.Arrays.copyOf()方法理解:
用于复制指定的数组内容以达到扩容的目的,该方法对不同的基本数据类型都有对应的重载方法。
2.Arrays.sort()的几种用法 https://blog.csdn.net/qq_41763225/article/details/82890122
Java中的Arrays类中有一个sort()方法,该方法是Arrays类的静态方法,在需要对数组进行排序时,非常好用。
2.1 Arrays.sort(int[]a):对一个数组所有元素进行排序,并且是从小到大排序。int[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5}; Arrays.sort(a);0123456789
2.2 Arrays.sort(int[]a,int fromlIndex,int toIndex):这种形式是对数组a的下标从fromIndex到toIndex-1的元素排序,注意下标toIndex的元素不参与排序。int[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5}; Arrays.sort(a, 0, 3);7 8 9
3.continue表示跳出当次循环
5.17领扣--Arrays.copyOf()方法的更多相关文章
- Java中 System.arraycopy() 和 Arrays.copyOf()方法
System.arraycopy() 和 Arrays.copyOf()方法 阅读源码的话,我们就会发现 ArrayList 中大量调用了这两个方法.比如:我们上面讲的扩容操作以及add(int in ...
- System.arraycopy(src, srcPos, dest, destPos, length) 与 Arrays.copyOf(original, newLength)区别
//System.arraycopy,只拷贝已存在的数组元素 int[] src = {0, 1, 2}; int[] dest = new int[3]; System.arraycopy(src, ...
- Arrays.copyOf() 和 System.arrayCopy()分析
java数组的拷贝四种方法:for.clone.System.arraycopy.Arrays.copyof public class Test1 { public static void main( ...
- 再谈System.arraycopy和Arrays.copyOf
之前转载过一篇博文,介绍过这两个方法,今天想要再次详细的了解一下. public static native void arraycopy(Object src, int srcPos, Object ...
- java数组的拷贝四种方法:for、clone、System.arraycopy、arrays.copyof
public class ArrayCopy{ public static void main(String []args){ int []a = {1,3,4,5}; toPrint(a); int ...
- 领扣-1/167 两数之和 Two Sum MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- System.arraycopy()和Arrays.copyOf()的区别
先看看System.arraycopy()的声明: public static native void arraycopy(Object src,int srcPos, Object dest, in ...
- Java-Java中System.arraycopy() 和 Arrays.copyOf()两者之间的区别
如果我们想拷贝一个数组,我们可能会使用System.arraycopy()或者Arrays.copyof()两种方式.在这里,我们将使用一个比较简单的示例来阐述两者之间的区别. 1.示例代码: Sys ...
- java——Arrays.asList()方法
Arrays.asList() 是将数组作为列表 问题来源于: public class Test { public static void main(String[] args) { int[] a ...
随机推荐
- 【webpack结合React开发环境配置】React开发环境配置之Webpack结合Babel8.x版本安装的正确姿势(Webpack最新版4.x结合Babel8.x环境配置步骤)
1. 安装cnpmnpm install -g cnpm --registry=https://registry.npm.taobao.org[使用淘宝镜像]2. 初始化package.json文件c ...
- SDOI2018退役记
在NOIp2017中,我意识到自己啥也不会.如今SDOI2018快来了,自己还是啥也不会.高一两次考试注定以打两次酱油告终.还是记录一下,到NOIp之后如果还没有退役的话,那这个博客可能还会继续更新吧 ...
- bx值
bx值 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Problem De ...
- C - Reading comprehension 二分法 求等比数列前N项和
Read the program below carefully then answer the question. #pragma comment(linker, "/STACK:1024 ...
- 通过JS的事件处理取得radio的值
转自:http://blog.sina.com.cn/s/blog_50a1e17401017pik.html 提前知识准备: 在一个HTML文档中,每个元素都可以设置ID和NAME属性. 其中ID属 ...
- Linux终止进程的工具kill/killall/pkill/xkill/skill用法区别(转)
一. 终止进程的工具kill .killall.pkill.xkill 终止一个进程或终止一个正在运行的程序,一般是通过kill .killall.pkill.xkill等进行.比如一个程序已经死掉, ...
- systemtap dtrace与 oracle
https://fritshoogland.wordpress.com/page/3/ http://externaltable.blogspot.com/2013/06/dtrace-explora ...
- webservices系列(五)——javaweb整合Axis2及多service配置
1.新建一个项目动态web项目webservice_test3. 2.打开<Tomcat安装目录>webapps/axis2/WEB-INF.将lib.conf.modules三个目录复制 ...
- CSUOJ 1329 一行盒子(数组模拟链表)
题目:id=1329">http://acm.csu.edu.cn/OnlineJudge/problem.php? id=1329 题意: watermark/2/text/aHR0 ...
- [RxJS 6] The Retry RxJs Error Handling Strategy
When we want to handle error observable in RxJS v6+, we can use 'retryWhen' and 'delayWhen': const c ...