中小型企业建设一个网站大概需要多少钱,网站开发可选择的方案有,极简wordpress主题,杭州市网站推广目录 JZ3 数组中重复的数字
思路#xff1a; 解题步骤#xff1a; JZ4 二维数组中的查找
思路 JZ3 数组中重复的数字 描述#xff1a; 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的#xff0c;但不知道有几个数字是重复的。也不知道每…目录 JZ3 数组中重复的数字
思路 解题步骤 JZ4 二维数组中的查找
思路 JZ3 数组中重复的数字 描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如如果输入长度为7的数组[2,3,1,0,2,5,3]那么对应的输出是2或者3。存在不合法的输入的话输出-1。 思路
首先我们需要知道我们用什么数据结构。读题不难发现他是找重复的数字这时我们首先想到的就是HashSet了因为它在存储数据时数据是不会重复的。 解题步骤
new一个HashSet对象。将数组中的数据加到hashset此时需要判断加入的数据在hashset是否存在不存在就加到对象当中若存在。证明这个数是重复的return就行了。题目入口
点击进入该题
代码如下
public int duplicate (int[] numbers) {// write code hereSetInteger hashsetnew HashSet();//将数组输入set当中for(int i0;inumbers.length;i) {if(!hashset.contains(numbers[i])) {hashset.add(numbers[i]);}else {return numbers[i];}}return -1;} JZ4 二维数组中的查找 描述 在一个二维数组array中每个一维数组的长度相同每一行都按照从左到右递增的顺序排序每一列都按照从上到下递增的顺序排序。请完成一个函数输入这样的一个二维数组和一个整数判断数组中是否含有该整数。 [ [1,2,8,9], [2,4,9,12], [4,7,10,13], [6,8,11,15] ] 给定 target 7返回 true。 给定 target 3返回 false。 思路
定义row和col表示行和列利用二维数组由上到下由左到右递增的规律那么选取右上角或者左下角的元素a[row][col]与target进行比较当target小于元素a[row][col]时那么target必定在元素a所在行的左边,即col--当target大于元素a[row][col]时那么target必定在元素a所在列的下边,即row。
题目入口
点击进入该题
代码如下
public boolean Find(int target, int [][] array) {int row0;int colarray[0].length-1;while(rowarray.length-1 col0) {if(targetarray[row][col]) {return true;}else if(targetarray[row][col]) {//在下一行row;}else {//这一行再进行一个一个遍历col--;}}return false;}