![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
AHawkeye
这个作者很懒,什么都没留下…
展开
-
2021-04-12 LeetCode每日一题最大数(字符串拼接排序)
目录题目解题思路解题代码题目给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数例如 输入:nums = [3,30,34,5,9] 输出:“9534330”解题思路Java中Collections.sort方法可以对对象数组排序,可以重写排序方法,类似于C++自己写sort的cmp函数,重写排序方法,就要对两个字符串a和b比较拼接后的大小,容易发现a+b和b+a长度是一样的,如果a+b是大于b原创 2021-04-12 17:55:26 · 484 阅读 · 0 评论 -
2021-01-03 LeetCode每日一题partition的ArrayList解法
目录题目描述解题思路解题代码题目描述给你一个链表和一个特定值 x ,请你对链表进行分隔,使得所有小于 x 的节点都出现在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/partition-list解题思路把链表的数据存放到数组中,然后建立新的链表头节点,然后对数组逐一遍历,先放小于x的,再放大于等于x的解题代码class Solution { publi原创 2021-01-03 12:05:05 · 86 阅读 · 0 评论 -
2020-12-30 LeetCode每日一题lastStoneWeight的递归解法
目录题目描述解题思路解题代码官方解答题目描述有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。来源:力扣(LeetCode) 链接:https://l原创 2020-12-30 09:16:43 · 186 阅读 · 1 评论 -
2020-12-27 LeetCode每日一题isIsomorphic的HashMap解法
目录题目描述解题思路解题代码题目描述给定两个字符串 s 和 t,判断它们是否是同构的。如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。解题思路同构直接想到hashmap映射,具体看注释。解题代码class Solution{ public boolean isIsomorphic(String s,String t){ if(s.length(原创 2020-12-27 10:02:51 · 271 阅读 · 4 评论 -
2020-12-25 LeetCode每日一题findContentChildren排序+贪心解法
目录题目描述解题思路解题代码平安夜发糖,圣诞节发饼干,这就是LeetCode吗题目描述假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。解题思路首先把s数组排序,否则遍历s的时原创 2020-12-25 10:38:39 · 293 阅读 · 0 评论 -
2020-12-24 LeetCode每日一题candy左右遍历求解相邻问题
目录解题思路解题代码解题思路既然是相邻,分左右遍历,求同时满足左遍历和右遍历的情况即可。与官方解法一相同,具体看注释。解题代码public int candy(int[] ratings){ int n = ratings.length; //既然是相邻,分左右遍历,求同时满足左遍历和右遍历的情况即可 int[] left = new int[n];//先从左边遍历 for(int i = 0;i < n;i++){原创 2020-12-24 09:57:27 · 146 阅读 · 2 评论 -
LeetCode第88题merge的三种思路
目录arrayCopy方法介绍代码最少的方法二路归并排序最好的方法:双指针从后往前arrayCopy方法介绍System.arraycopy的函数原型是:public static void arraycopy(Object src,int srcPos,Object dest,int destPos, int length)其中:src表示源数组,srcPos表示源数组要复制的起始位置,desc表示目标数组,length表示要复制的长度。代码最少的方法最朴素的解法就是将两个数组合并之后再排序。该原创 2020-12-23 19:14:20 · 108 阅读 · 0 评论 -
2020-12-23 LeetCode每日一题firstUniqChar的HashSet+indexOf解法
目录解题思路解题代码lastIndexOf解题思路利用一个集合Set存放已经出现过的字母,从字符串开头开始检索,如果从这个字符开始没有与之相同的字符且该字符是第一次出现(即indexOf==-1且!set.contains),则是我们要找的,返回下标,否则把该字符添加进Set,最后没有找到则返回-1。解题代码class Solution { public int firstUniqChar(String s){ HashSet<Character> set=new原创 2020-12-23 09:37:53 · 113 阅读 · 0 评论 -
LeetCode第67题addBinary列竖式逢二进一的解法
目录最朴素的思想解题思路解题代码最朴素的思想先转化成十进制数,再相加,最后再用toBinaryString方法返回但是这处理不了int溢出的情况class Solution { public String addBinary(String a, String b) { return Integer.toBinaryString( Integer.parseInt(a, 2) + Integer.parseInt(b, 2) );原创 2020-12-22 20:35:47 · 155 阅读 · 0 评论 -
2020-12-21 LeetCode每日一题minCostClimbingStairs的动态规划解法
目录解题思路解题代码解题思路reach[i]是到达第i个阶梯前已经花费的最小体力 也就是到第i阶花费体力为cost[i]+reach[i]初始可选择第0个和第1个 则在到达这两个阶梯前 最小花费0体力按题意可以认为最后一步的cost是0 则reach[n]即是到达顶部花费的最小体力解题代码class Solution { public int minCostClimbingStairs(int[] cost) { int n=cost.length; in原创 2020-12-21 13:15:05 · 98 阅读 · 0 评论 -
2020-12-19 LeetCode每日一题rotate的原地旋转
目录解题思路解题代码解题思路把n分奇偶讨论,在二维数组中找到四个点旋转前后的坐标变换公式,i和j一定是在n/2附近结束,否则又把矩阵旋转回去了,然后分别用n=4和n=5的情况画图做辅助,找到i和j循环结束精确位置,即可结束本题。解题代码class Solution { public void rotate(int[][] matrix){ int n=matrix.length; if(n%2==1) { for (int i = 0;原创 2020-12-19 10:40:25 · 132 阅读 · 1 评论 -
2020-12-18 LeetCode每日一题findTheDifference的数组解法
目录解题思路解题代码解题思路创建一个letter数组,从0到25,分别是s中a到z的个数,再遍历t数组,遇到某个字母就让letter数组中对应位置减一,则一旦遇到负数的情况,一定是被添加的字母,记录在t的位置放入index 返回解题代码class Solution { public char findTheDifference(String s,String t){ if(s.length()==0){ return t.charAt(0);原创 2020-12-18 09:55:04 · 152 阅读 · 0 评论 -
2020-12-16 LeetCode每日一题wordPattern的HashMap+ArrayList解法
目录解题思路解题代码第一次写题解 还处于学习初级阶段 写于此用于学习交流 多多包涵解题思路先用利用ArrayList存放s中每个被空格隔开的字符串,再用HashMap存放pattern中的每个字符,再利用HashMap的方法进行判断利用string将s中被空格隔开的字符串存入ArrayList,存入后,如果pattern的length不等于ArrayList的size,即“aa”“b b b”类型,直接返回false。进入循环,让key等于pattern的每个字符,value是ArrayList.原创 2020-12-16 17:04:05 · 81 阅读 · 0 评论