
leetcode(java/python/c++)
力扣部分个人解题记录
叶青古
不要温和地走进那个良夜,老年应当在日暮时燃烧咆哮;怒斥,怒斥光明的消逝。
展开
-
(java)leetcode.494——目标和
原题地址:https://leetcode-cn.com/problems/target-sum/给定一个非负整数数组,a1, a2, …, an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。返回可以使最终数组和为目标数 S 的所有添加符号的方法数。示例:输入:nums: [1, 1, 1, 1, 1], S: 3输出:5解释:-1+1+1+1+1 = 3+1-1+1+1+1 = 3+1+1-1+1+1 = 3原创 2021-03-26 01:02:44 · 111 阅读 · 0 评论 -
(java)leetcode.394——字符串解码
原题地址:https://leetcode-cn.com/problems/decode-string/给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。原创 2021-03-26 00:59:28 · 202 阅读 · 0 评论 -
(java)leetcode.232——用栈实现队列
原题地址:https://leetcode-cn.com/problems/implement-queue-using-stacks/请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 fal原创 2021-03-26 00:53:47 · 166 阅读 · 0 评论 -
(java)leetcode.225——用队列实现栈
原题地址:https://leetcode-cn.com/problems/implement-stack-using-queues/请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通队列的全部四种操作(push、top、pop 和 empty)。实现 MyStack 类:void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。boolean empty() 如果栈是空的,返回 true ;否则,返回 fals原创 2021-03-26 00:43:38 · 82 阅读 · 0 评论 -
(java)leetcode.724——寻找数组的中心索引
原题地址:https://leetcode-cn.com/problems/find-pivot-index/给你一个整数数组 nums,请编写一个能够返回数组 “中心下标” 的方法。数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心下标,返回 -1 。如果数组有多个中心下标,应该返回最靠近左边的那一个。注意:中心下标可能出现在数组的两端。思路:判定条件:左边的和*2+当前索引值=总和class Solution { public原创 2021-03-26 00:29:54 · 189 阅读 · 0 评论 -
(java)leetcode.1911——旋转矩阵
原题地址:https://leetcode-cn.com/problems/rotate-matrix-lcci/给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。不占用额外内存空间能否做到?思路:先上下翻转,再按主对角线翻转class Solution { //先上下交换再按主对角线对称交换元素 public void rotate(int[][] matrix) { int N原创 2021-03-26 00:24:40 · 142 阅读 · 0 评论 -
(java)leetcode.27——移除元素
原题地址:https://leetcode-cn.com/problems/remove-element/给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。思路:快慢双指针思路,当当前元素不等于val时,快慢指针均加一,当当前元素等于val时,快指针加1,当快指针当前元素不等于val时,交换快慢指原创 2021-03-26 00:20:32 · 127 阅读 · 0 评论 -
(java)leetcode.14——最长公共前缀
原题地址:https://leetcode-cn.com/problems/longest-common-prefix/编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例:输入:strs = [“flower”,“flow”,“flight”]输出:“fl”思路:先找到最短字符串,然后以该字符串为公共子串的匹配起点,当存在不以该子串为前缀的情况则子串字符减一。class Solution { public String longestCo原创 2021-03-26 00:16:38 · 93 阅读 · 0 评论 -
(c++)leetcode.200——岛屿数量
原题地址:https://leetcode-cn.com/problems/number-of-islands/给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例:输入:grid = [[“1”,“1”,“1”,“1”,“0”],[“1”,“1”,“0”,“1”,“0”],[“1”,“1”,“0”,“0”,“0”],[“0”,“0原创 2021-03-26 00:08:48 · 830 阅读 · 0 评论 -
(c++)leetcode.752——打开转盘锁
原题地址:https://leetcode-cn.com/problems/open-the-lock/你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每个拨轮可以自由旋转:例如把 ‘9’ 变为 ‘0’,‘0’ 变为 ‘9’ 。每次旋转都只能旋转一个拨轮的一位数字。锁的初始数字为 ‘0000’ ,一个代表四个拨轮的数字的字符串。列表 deadends 包含了一组死亡数字,一旦拨轮的数字和列原创 2021-03-26 00:03:11 · 364 阅读 · 0 评论 -
(c++)leetcode.279——完全平方数
原题地址:https://leetcode-cn.com/problems/perfect-squares/给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。给你一个整数 n ,返回和为 n 的完全平方数的 最少数量 。完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。思路:深度优先搜索树class Soluti原创 2021-03-25 23:54:44 · 146 阅读 · 0 评论 -
(c++)leetcode.20——有效的括号
原题地址:https://leetcode-cn.com/problems/valid-parentheses/给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。思路:单栈。遍历字符串,遇到三种括号中任何一种左括号,均入栈同种右括号,由于有效字符串均需要成对出现,所以仅需要在后续遇字符为右括号时与栈顶元素进行配对即可判定。class Solution {public原创 2021-03-25 23:46:58 · 125 阅读 · 0 评论 -
(c++)leetcode.739——每日温度
原题地址:https://leetcode-cn.com/problems/daily-temperatures/请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000]。每原创 2021-03-25 23:37:32 · 156 阅读 · 0 评论 -
(c++)leetcode.150——逆波兰表达式求值
题目原址:https://leetcode-cn.com/problems/evaluate-reverse-polish-notation/根据 逆波兰表示法,求表达式的值。有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。示例 1:输入:tokens = [“2”,“1”,"+",“3”,""]输出:9解释:该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9示例 2:输入:tokens = [“4”,“13”,“5”,"/","+"原创 2021-03-25 00:46:22 · 328 阅读 · 0 评论