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 ...
随机推荐
- linu下nginx的安装
这里用到的环境是nginx-1.8.0,linux用的是CentOS-7-x86_64-DVD-1804.iso版本 1 什么是nginx Nginx ("engine x") ...
- php第十五节课
租房表 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3. ...
- RabbitMQ在Ubuntu上的环境搭建
1.修改/etc/apt/sources.list文件 A:命令:vi /etc/apt/sources.list B:在最后一行加上:deb http://www.rabbitmq.com/debi ...
- elisp 编程 if 特殊表
elisp中的 if 特殊表与其他语言中的 if 语句逻辑上并无二致,关键在于如何使用. (if (> 4 3) (message "4 is greater than 3" ...
- 【codeforces 508A】Pasha and Pixels
[题目链接]:http://codeforces.com/contest/508/problem/A [题意] 让你在一个n*m的方格上给方格染色; 顺序给出染色的k个格子 如果在某一时刻 有一个2* ...
- 2.1.6、SparkEnv中创建ShuffleManager
ShuffleManager负责管理本地以及远程的block数据的shuffle操作. ShffuleManager的创建是在SparkEnv中. // Let the user specify sh ...
- hdu 4975 最大流解决行列和求矩阵问题,用到矩阵dp优化
//刚开始乱搞. //网络流求解,如果最大流=所有元素的和则有解:利用残留网络判断是否唯一, //方法有两种,第一种是深搜看看是否存在正边权的环,见上一篇4888 //至少四个点构成的环,第二种是用矩 ...
- Spring Boot 内嵌容器 Tomcat / Undertow / Jetty 优雅停机实现
Spring Boot 内嵌容器 Tomcat / Undertow / Jetty 优雅停机实现 Anoyi 精讲JAVA 精讲JAVA 微信号 toooooooozi 功能介绍 讲解java深层次 ...
- Cookie && Session && Token
Cookies Cookie的由来: HTTP 本身是一个无状态的 request/response 协议. server接收一个来自client的request, 处理完以后返回一个response ...
- Android中的GraphicBuffer同步机制-Fence
Fence是一种同步机制,在Android里主要用于图形系统中GraphicBuffer的同步.那它和已有同步机制相比有什么特点呢?它主要被用来处理跨硬件的情况.尤其是CPU.GPU和HWC之间的同步 ...