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 ...
随机推荐
- for循环中索引值和取值的迷惑
利用for循环和range从100——10,倒序讲所有的偶数添加到一个新列表中,然后对列表的元素进行筛选,将能被4整除的数留下来. even = []for i in range(100,9,-1): ...
- 棋盘DP三连——洛谷 P1004 方格取数 &&洛谷 P1006 传纸条 &&Codevs 2853 方格游戏
P1004 方格取数 题目描述 设有N $\times N$N×N的方格图(N $\le 9$)(N≤9),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字00.如下图所示(见样例): A ...
- discuz 微社区开通
检测api: http://wsq.discuz.com/?a=apitest
- 39.date hitogram基础知识
主要知识点: date hitogram之统计每月电视销量 上一节讲到histogram,他是以数值进行分组.本节讲到以日期进行bucket分组操作,也就是说把连续的日期变成离散的日期区间,然 ...
- Girls Love 233
Girls Love 233 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) P ...
- bcd(Binary-Coded Decimal缩写)
Binary-Coded Decimal,简称BCD,称BCD码或二-十进制代码,亦称二进码十进数.是一种二进制的数字编码形式,用二进制编码的十进制代码.这种编码形式利用了四个位元来储存一个十进制的 ...
- N天学习一个linux命令之ps
ps命令 用途 显示系统进程信息 用法 ps [options] 常用选项 选项有三种风格,这里是指Unix风格 (Unix,BSD,GNU LONG OPTIONS) 简单刷选类 -A, -e 显示 ...
- Go语言基础介绍
Go是一个开源的编程语言.Go语言被设计成一门应用于搭载Web服务器,存储集群或类似用途的巨型中央服务器的系统编程语言.目前,Go最新发布版本为1.10. Go语言可以运行在Linux.FreeBSD ...
- Clojure:两步发送iOS推送通知(apns)
首先在project.clj中,添加对notnoop 类库的引用:[com.notnoop.apns/apns "0.2.3"] 然后使用如下方法就可以发送推送消息了: (ns d ...
- 搭建LVS+Keepalived负载均衡集群
这两天学习了LVS+Keepalived负载均衡的搭建.网上的教程非常多,可是动起手来遇到不少问题. 如今把自己的搭建过程以及遇到的一些问题给分享下. 硬件环境: Macbook 8G内存.250G ...