网站制作哪家最好,数商云怎么样,wordpress 添加音乐播放器,个人网站建设优化704、二分查找
https://leetcode.cn/problems/binary-search/description/ 题目#xff1a; 解析#xff1a;
这个题目是有序数组#xff0c;还强调了数组中没有重复元素#xff0c;在此条件下使用二分查早返回的元素下标可能不是唯一的#xff0c;这些都是二分查早的前…704、二分查找
https://leetcode.cn/problems/binary-search/description/ 题目 解析
这个题目是有序数组还强调了数组中没有重复元素在此条件下使用二分查早返回的元素下标可能不是唯一的这些都是二分查早的前提。而对于二分查早来说我们就需要运用一下口诀坚持开闭一致性。 代码
class Solution {public int search(int[] nums, int target) {if(targetnums[0]||targetnums[nums.length-1]){return -1;}int left0,rightnums.length-1;while(leftright){int midleft((right-left)1);if(nums[mid]target){return mid;}else if(nums[mid]target){leftmid1;}else{rightmid-1;}}return -1;}
}
这是左闭右闭的写法主要是需要观察以下几个方面 27、移除元素
https://leetcode.cn/problems/remove-element/ 题目 解析
这个题目主要是用到了快慢指针的方法我们可以定义一个慢指针和一快指针快指针主要是用于先一步判断便利到的元素是否和要移除到的元素一样如果变量到的元素等于要移除的元素那么慢指针就不需要移动。 答案
class Solution {public int removeElement(int[] nums, int val) {int slow0,fast0;for(;fastnums.length;fast){if(nums[fast]!val){nums[slow]nums[fast];slow;}}return slow;}
}
977、有序数组的平方
https://leetcode.cn/problems/squares-of-a-sorted-array/description/ 题目 解析
只需要将原来的数组平方然后同时定义两个指针尾指针和头指针对其进行遍历得出答案。我们将正数的相对位置保持不变调整负数的平方的后的相对位置。 答案
class Solution {public int[] sortedSquares(int[] nums) {int left0,rightnums.length-1;int [] result new int[nums.length];int index result.length-1;while(leftright){if(nums[left]*nums[left]nums[right]*nums[right]){result[index--]nums[left]*nums[left];left;}else{result[index--]nums[right]*nums[right];--right;}}return result;}
} 209、长度最小子数组
https://leetcode.cn/problems/minimum-size-subarray-sum/ 题目 解析
本题的解题思路是滑动窗口。滑动窗口就是不断的调节子序列的起始位置和终止位置从而得到我们所需要的结果。我们需要使用一个for循环来表示滑动窗口的终止位置即可。 答案
class Solution {public int minSubArrayLen(int s, int[] nums) {int left 0;int sum 0;int result Integer.MAX_VALUE;for (int right 0; right nums.length; right) {sum nums[right];while (sum s) {result Math.min(result, right - left 1);sum - nums[left];}}return result Integer.MAX_VALUE ? 0 : result;}
}