柯森(Cosen)
柯森(Cosen)
> 题目难度`medium`,涉及到的算法知识有栈。 ### 题目描述 根据每日气温列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。 例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。 提示:气温列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在 [30,...
> 题目难度`hard`,涉及到的算法知识有双端队列。 ### 题目描述 给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 进阶:你能在线性时间复杂度内解决此题吗? 示例: ```js 输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3 输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值 --------------- ----- [1...
> 题目难度`easy`,涉及到的算法知识有栈、哈希表。 ### 题目描述 给定一个只包括`'('`,`')'`,`'{'`,`'}'`,`'['`,`']'` 的字符串,判断字符串是否有效。 有效字符串需满足: 1、左括号必须用相同类型的右括号闭合。 2、左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: ```js 输入: "()" 输出: true ``` 示例 2: ```js 输入: "()[]{}" 输出: true ``` 示例 3: ```js 输入:...
> 题目难度`easy`,涉及到的算法知识有链表、快慢指针。 ### 题目描述 给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 示例 1: ```js 输入:head = [3,2,0,-4], pos = 1 输出:true 解释:链表中有一个环,其尾部连接到第二个节点。 ```  示例 2: ```js...
> 题目难度`easy`,涉及到的算法知识有斐波那契数列、动态规划。 ### 题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: ```js 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶...
> 题目难度`medium`,涉及到的算法知识有数组、双指针 ### 题目描述 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2。  图中垂直线代表输入数组[1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。 示例:...
> 题目难度`medium`,涉及到的算法知识有数组、双指针 ### 题目描述 给你一个包含`n`个整数的数组`nums`,判断`nums`中是否存在三个元素`a`,`b`,`c` ,使得`a + b + c = 0`。请你找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例: ```js 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组集合为: [ [-1, 0, 1], [-1,...
> 题目难度`easy`,涉及到的算法知识有数组、哈希表 ### 题目描述 给定一个整数数组 `nums` 和一个目标值 `target`,请你在该数组中找出和为目标值的那`两个`整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: ```js 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 =...
节点单独封装为一个类,它有两个属性: * `next`:next[i]保存着下一个字符i的节点引用 * `isEnd`:当前节点是否可以作为一个单词的结束位置 > 节点本身不存储字符,字符是保存在节点之间的连线上的。 ```js /** * Initialize your data structure here. */ var TrieNode = function() { this.next = {}; this.isEnd = false; }; var Trie...
本道题目采用动态规划来解决。先给出`dp方程`: ```js dp[i] = max(dp[i - 1] + nums[i], nums[i]) ``` 我们这里需要两个变量,`sum`代表累计到当前位置i的最大和,`temp`代表全局最大子序列和,也就是最终要返回的结果。大致思路就是: * 如果 `sum > 0`,则说明 `sum` 对结果有增益效果,则 `sum` 保留并加上当前遍历数字 * 如果 `sum 0) { sum += num }...