【代码随想录-刷题学习JavaScript】day1-part01数组
创始人
2025-05-30 12:32:25

一、数组理论基础

文章链接

数组是存放在连续内存空间上的相同类型数据的集合。
下标索引的方式获取到下标下对应的数据。

特点:
1.下标都是从0开始的。
2.内存空间的地址是连续的。
是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址;
是连续的,所以数组的元素是不能删的,只能覆盖。

二、LeetCode 704. 二分查找

文章链接

手把手带你撕出正确的二分法 | 二分查找法 | 二分搜索法 | LeetCode:704. 二分查找

熟悉根据 “左闭右开”,“左闭右闭” 两种区间规则 写出来的二分法
其实是一种定边界的思想,能够很好的帮助我们确定<还是<=,以及+1或者-1。
定了一种思想,就从一而终。

【左闭右开】

/*** @param {number[]} nums* @param {number} target* @return {number}*/
var search = function(nums, target) {let left= 0;let right = nums.length;while (left < right) {let middleIndex = left + (right - left >> 1);let middle = nums[middleIndex];if (middle < target) {left = middleIndex + 1;} else if (middle > target) {right = middleIndex;} else {return middleIndex;} }return -1;
};

【左闭右闭】

/*** @param {number[]} nums* @param {number} target* @return {number}*/
var search = function(nums, target) {let left= 0;let right = nums.length - 1;while (left <= right) {let middleIndex = left + (right - left >> 1);let middle = nums[middleIndex];if (middle < target) {left = middleIndex + 1;} else if (middle > target) {right = middleIndex - 1;} else {return middleIndex;} }return -1;
};

三、LeetCode 27. 移除元素

文章讲解
视频讲解

题目比较简单,但是比较考验对数组底层原理理论的理解。
其实数组物理空间是无法删除的,只是后一位移动覆盖。

题目建议: 暴力的解法,可以锻炼一下我们的代码实现能力,建议先把暴力写法写一遍。
双指针法 是本题的精髓。 库函数是不推荐在学算法时候使用的。

【暴力解】
一层for循环用于遍历数组元素
二层for循环用于更新数组

/*** @param {number[]} nums* @param {number} val* @return {number}*/
var removeElement = function(nums, val) {let size = nums.length;for (let i = 0; i < size; i++) {if (nums[i] === val) {for (let j = i + 1; j < size; j++) {nums[j-1] = nums[j];}i--;size--;}}return size;
};

【双指针】
快慢指针,均是从0开始
slow慢指针:用于指向更新后的数组的下标的位置(“坑”)
quick快指针:用于寻找新数组中的元素(“萝卜”)

/*** @param {number[]} nums* @param {number} val* @return {number}*/
var removeElement = function(nums, val) {let slow = 0;for (let quick = 0; quick < nums.length; quick++) {if (nums[quick] != val) {nums[slow] = nums[quick];slow++;}}return slow;
};

相关内容

热门资讯

介绍对象的短信范文英语(推荐... Introducing My Significant Other篇一Hey there!I hope...
高中英语作文:奔流的生命(通... 高中英语作文:奔流的生命 篇一The Flowing LifeWater is the source...
备考高考的英语作文范文【通用... 备考高考的英语作文范文 篇一How to Prepare for the College Entra...
考试后的感受作文200字(优... 考试后的感受作文200字 篇一考试后的感受考试结束了,心情是复杂的。一方面,我感到松了一口气,终于可...
戒烟的英语作文中英对照(优秀... Title: Quitting Smoking篇一 (Article One)Quitting Sm...