二分查找与移除元素(JavaScript语言实现) 【算法|二分查找与移除元素(JavaScript语言实现)】算法学习第一天
二分查找 leetcode题目链接:
https://leetcode-cn.com/problems/binary-search/
题目:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
var search = function(nums, target) {
let left = 0, right = nums.length - 1;
// 使用左闭右闭区间
while(left <= right) {
let mid = left + Math.floor((right - left)/2);
//调用Math。floor,对其向下取整
if (nums[mid] > target) {
right = mid - 1;
} else if (nums[mid] < target) {
left = mid + 1;
} else {
return mid;
}
}
return -1;
}
解题思路:二分查找,也就是从已排序数组的中间开始查询,查询值比它大则往右,反之则往左。
移除元素 LeetCode题目链接:
https://leetcode-cn.com/problems/remove-element/
var removeElement = function(nums, val) {
let len = nums.length;
for(i = 0;
i < len;
i++) {
if(nums[i] == val) {
for(j = i + 1;
j < len;
j++) {
nums[j - 1] = nums[j];
}
i--;
len--;
}
return len;
}
解题思路:刚开始不会,直接暴力破解上手了。
个人博客同步链接:https://exmaterial.gitee.io/
推荐阅读
- 算法|挂了腾讯3面,拿到字节四面offer,谈谈我的大厂面经!
- LeetCode|LeetCode剑指 Offer 03. 数组中重复的数字python3 3种解法
- 剑指offer|剑指 Offer 03. 数组中重复的数字(简单)
- 经典程序|数据结构之用栈来解决括号匹配问题(Java实现)
- 动态规划|LeetCode 300.最长递归子序列
- leetcode|LeetCode 94. 二叉树的中序遍历
- 数据结构与算法|4 单循环链表解决约瑟夫问题
- C语言|C语言求水仙花数
- C语言|C语言求输入字符的字母和数字个数