力扣
emi_97
这个作者很懒,什么都没留下…
展开
-
跳跃游戏||—贪心算法
题目描述:给你一个非负整数数组 nums ,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。假设你总是可以到达数组的最后一个位置。输入: nums = [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳1步,然后跳3步到达数组的最后一个位置。解题思路:这道题我们仍旧不管它的跳法如何,仍旧从当前的覆盖范围来看。从求局部最优达...原创 2022-04-13 20:23:17 · 254 阅读 · 0 评论 -
跳跃游戏—贪心算法
题目描述:给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。解题思路:注意,很容易陷入的误区是我怎么跳,但其实,怎么跳无所谓,只要所在位置的可跳的最大覆盖范围能达到最后一个位置下标即可满足要求。贪心算法的解题思路为先求局部最优,以求得原创 2022-04-13 19:52:19 · 2613 阅读 · 0 评论 -
用栈实现队列—栈与队列
题目描述使用栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 false解题思路要知道,栈的特点是先入后出,队列特点是先入先出,因此用栈的特性实现队列的特性,一个栈肯定是不够用的。因此选择使用两原创 2022-04-11 17:39:00 · 193 阅读 · 0 评论 -
三数之和-双指针
题目描述给一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意: 答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ]解题思路指定一个相对不动的的指针i,两个左右指针分别指向i的下一个位置和数组的最后一个位置。当指针i不动时,对左右指针进原创 2022-04-08 14:23:48 · 121 阅读 · 0 评论 -
移除元素-双指针
算法小白学习leetcode,从自己的角度复述算法的实现思想,帮助理解原创 2022-04-08 11:27:25 · 88 阅读 · 0 评论