摘要: //二分法查找 class Solution { public int findDuplicate(int[] nums) { //定义数组左边界的指针 left,右边界指针 right int left = 1; int right = nums.length - 1; while(left < 阅读全文
posted @ 2020-10-30 21:37 peanut_zh 阅读(81) 评论(0) 推荐(0) 编辑
摘要: //采用数组桶 class Solution { public int[] findErrorNums(int[] nums) { //定义一个新数组来统计nums数组中元素出现的次数 int[] count = new int[nums.length + 1]; //统计每个元素出现的次数 for 阅读全文
posted @ 2020-10-30 17:11 peanut_zh 阅读(100) 评论(0) 推荐(0) 编辑
摘要: /* 左下角的元素是这一行中最小的元素,同时又是这一列中最大的元素。比较左下角元素和目标: 1.若左下角元素等于目标,则找到 2.若左下角元素大于目标,则目标不可能存在于当前矩阵的最后一行,问题规模可以减小为在去掉最后一行的子矩阵中寻找目标 3.若左下角元素小于目标,则目标不可能存在于当前矩阵的第一 阅读全文
posted @ 2020-10-30 16:10 peanut_zh 阅读(83) 评论(0) 推荐(0) 编辑
摘要: class Solution { public int findMaxConsecutiveOnes(int[] nums) { //定义俩个计数器,max为最大的1的数量,cur为当前1的数量 int max = 0; int cur = 0; //遍历数组,如果数组中的元素为1,cur+1,为0 阅读全文
posted @ 2020-10-30 15:25 peanut_zh 阅读(67) 评论(0) 推荐(0) 编辑
摘要: class Solution { public void moveZeroes(int[] nums) { //定义一个指针,用来记录数组中非0元素的个数 int j = 0; for(int i = 0;i < nums.length;i++){ if(nums[i] != 0){ nums[j+ 阅读全文
posted @ 2020-10-30 15:11 peanut_zh 阅读(63) 评论(0) 推荐(0) 编辑