LeetCode100
路口上
编程 Java 算法
展开
-
LeetCode 739--每日温度--栈
LeetCode 739–每日温度–栈题目描述请根据每日 气温 列表 temperatures ,请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高,请在该位置用 0 来代替。想法:用栈怎么去用我是从后往前去遍历数组,如果栈为空,当前位置为0,并且将位置i保存到栈中不为空当前位置的数和栈顶为下标数组中对应的数比较,如果更小就将栈顶下标和当前i相减,再将i保存到栈中其它情况就直接将栈顶位置pop出去代码这次写的有点丑,应该不用break和while (true原创 2022-01-13 22:04:40 · 159 阅读 · 0 评论 -
LeetCode75 颜色分类
LeetCode75 颜色分类题目描述给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。想法可以参考快速排序,只是要处理相等的情况而且不需要递归代码实现public class LeetCode75 { public static void main(String[] args) { int nums[]= {2,0,1}; LeetC原创 2021-11-20 21:07:25 · 316 阅读 · 0 评论 -
LeetCode64 最小路径和
LeetCode64 最小路径和题目描述给定一个包含非负整数的 *m* x *n* 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。**说明:**每次只能向下或者向右移动一步。思路动态规划思想dp[i][j]=Math.min(dp[i-1][j],dp[i][j-1])当然第一行第一列需要分开算用文字描述就是,第i,j位置和该位置上面和该位置左边的第一个数有关代码实现public class LeetCode64 { public static原创 2021-11-19 19:47:49 · 97 阅读 · 0 评论 -
LeetCode 56合并区间
LeetCode 56合并区间题目描述以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。分析首先是对数组以第一个数排序然后就可以看成三种情况:i和i+1区间分离、i+1在i里面、i和i+1交在一起然后对不同情况分析,变换p,q将最后一个p,q加入到返回数组里面切割数组需要返回的长度代码实现public class原创 2021-11-18 22:05:48 · 372 阅读 · 0 评论 -
LeetCode55 跳跃游戏
LeetCode55 跳跃游戏题目描述给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。想法关注到是可以跳跃的最大长度 ,说明了可以更少,在0到这个max都是可以到达的所以可以一个一个遍历,看可以到达的位置是否可以到数组尾比如第一个数为2,说明可以0到2都是可以到达的,遍历也可以到该位置代码实现方面我是这么想的,一个变量max记录最大可到达的位置,遍历到该位置,max和最新的nums[i]原创 2021-11-16 21:33:01 · 1891 阅读 · 0 评论 -
LeetCode48 旋转图像 旋转数组
LeetCode48 旋转图像题目描述给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。一开始用的四条变旋转,然后向内,但是各个点位置难控制,就转用两次翻转public class LeetCode_48 { public static void main(String[] args) { int matrix[][]= {{1,2,3},{4,原创 2021-11-15 21:25:43 · 82 阅读 · 0 评论 -
LeetCode31下一个排列
LeetCode31下一个排列题目描述实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列(即,组合出下一个更大的整数)。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须 原地 修改,只允许使用额外常数空间。思路:下一个个时什么数,其实可以发现只需要看后面一部分,也就是从后面往前看,一直升序,直到降序开始,然后把降序的那个数在后面找到刚比它打的数然后交换,再把后面的序列反转比如 1234543210 从后面的数开始看也就是0,一原创 2021-11-14 21:12:21 · 238 阅读 · 0 评论 -
LeetCode 17电话号码的字母组合
LeetCode 17电话号码的字母组合题目描述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。我一开始想采用回溯的方法来做,但是再写一个函数会有很多变量要考虑,电话号码数字对应字符,存储List,回溯位置,已经有的字符等等然后看到大佬用队列做的,再输入的字符里面每次拿出一个就变量一遍队列,重队列头拿出,尾放入加入的对数字的字符,想想可能用进制的思想,每一位数应一个字符,超原创 2021-11-12 22:03:41 · 209 阅读 · 0 评论 -
LeetCode 11. 盛最多水的容器
LeetCode 11. 盛最多水的容器题目描述给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。我的写法面积等于min(hieght[i],hight[j])*len 当len不断减小时,如果面积更大只能是高度变高,所以让i,j在头和尾然后向中靠拢,舍弃高度更小的,一直比较面原创 2021-11-10 21:24:20 · 700 阅读 · 0 评论 -
LeetCode 02. 两数相加
LeetCode 02. 两数相加题目描述给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。其实就是十进制的加法,下面是我写的代码/** * Definition for singly-linked list. * public class ListNode { * int val; *原创 2021-11-07 21:01:42 · 64 阅读 · 0 评论