本文主要是介绍代码随想录三刷day02,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、力扣69. x 的平方根
- 二、力扣367. 有效的完全平方数
- 三、力扣27. 移除元素
- 四、力扣26. 删除有序数组中的重复项
前言
双指针法(快慢指针法): 通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。
一、力扣69. x 的平方根
class Solution {public int mySqrt(int x) {if(x == 0 || x == 1){return x;}int low = 1, high = x, mid=1;while(low <= high){mid = low + (high-low)/2;if(x / mid == mid){return mid;}else if(x / mid < mid){high = mid - 1;}else{low = mid +1;}}return high;}
}
二、力扣367. 有效的完全平方数
class Solution {public boolean isPerfectSquare(int num) {if(num == 1){return true;}int low = 1, high = num, mid;while(low <= high){mid = low + (high-low)/2;if(num / mid == mid){return mid * mid == num;}else if( num / mid > mid){low = mid + 1;}else{high = mid -1;}}return false;}
}
三、力扣27. 移除元素
class Solution {public int removeElement(int[] nums, int val) {int i = 0, j = 0;for(; i < nums.length; ){if(nums[i] == val){i ++;}else{nums[j++] = nums[i++];}}return j;}
}
四、力扣26. 删除有序数组中的重复项
class Solution {public int removeDuplicates(int[] nums) {if(nums.length == 1){return 1;}int i = 1, j = 0;for(; i < nums.length;){if(nums[i] == nums[j]){i ++;}else{nums[++j] = nums[i++];}}return j+1;}
}
这篇关于代码随想录三刷day02的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!