
算法
史蒂文·月
鲜花并不都在春天盛开,河流也并不是最终都要并入大海,人生也没有规定要按照一个模板去生活。 鲜花可以盛开在四季,河流也可以流向八方,你也可以按照自己的方式去生活。心中对生活有热爱,山海皆可平,人生处处是风景。
展开
-
链表和数组的区别
链表是通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据,一个是指针,最后一个节点的指针指向null像js中的原型链的底层就是基于链表实现的。原创 2023-04-18 16:09:24 · 93 阅读 · 0 评论 -
力扣算法 1991-找到数组的中间位置 前缀和 (级别:简单)
给你一个下标从 0 开始的整数数组 nums ,请你找到 最左边 的中间位置 middleIndex (也就是所有可能中间位置下标最小的一个)。中间位置 middleIndex 是满足 nums[0] + nums[1] + … + nums[middleIndex-1] == nums[middleIndex+1] + nums[middleIndex+2] + … + nums[nums.length-1] 的数组下标。如果 middleIndex == 0 ,左边部分的和定义为 0。原创 2023-04-10 15:26:46 · 91 阅读 · 0 评论 -
力扣算法27- 移除元素:双指针法和双重循环(级别:简单)
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。原创 2023-04-03 17:49:39 · 120 阅读 · 0 评论 -
力扣704-二分查找(级别:简单) 二分法的经典题目
二分法,也称折半查找,是一种在有序数组中查找特定元素的算法。该算法的基本思想是将数组从中间分成两部分,判断目标元素应该在哪一部分,然后只在该部分中继续查找,不断缩小查找范围,直到找到目标元素或确定目标元素不存在。首先,确定数组的中间位置。将目标元素与中间位置的元素进行比较。如果相等,则直接返回中间位置的索引;如果目标元素小于中间位置的元素,则在左半部分继续查找;否则,在右半部分继续查找。重复步骤 1 和步骤 2,直到找到目标元素或确定目标元素不存在。二分查找必须适用于有序。原创 2023-03-30 16:34:59 · 102 阅读 · 0 评论 -
力扣算法----有效的括号(级别:简单)
给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。原创 2023-03-29 23:27:13 · 223 阅读 · 0 评论