JimmyZhan实名上网
JimmyZhan实名上网
全部文章
分类
归档
标签
去牛客网
登录
/
注册
JimmyZhan实名上网的博客
全部文章
(共19篇)
NC104 题解 | #比较版本号#
官方解法:双指针 import java.util.*; public class Solution { public int compare (String version1, String version2) { // 两个版本号的长度 int n1 = ...
2023-08-15
0
424
BM90 题解 | #最小覆盖子串#
官方题解:双指针 + 哈希数组说在前面:因为26个字母算上大小写一共就52位,并且每一位的下标都可以由字符对应的ASCII码来获得(比如'a' = 97,hash['a'] -> hash[97])所以这题不需要使用HashMap,使用数组作为哈希结构就行了。思路:这个解法的思路就是使用一个哈...
2023-08-08
1
517
BM52 题解 | #数组中只出现一次的两个数字#
哈希表:暴力方法第一次for循环把nums[ ]中所有的元素都存到一张哈希表中,key为nums[i],value为这个元素出现的次数。时间复杂度O(n)第二次for循环遍历哈希表。时间复杂度O(n)把其中value为1的key(也就是nums[i])存进res[ ]中由于题目要求res要非降序,最...
2023-08-08
0
366
BM51 题解 | #数组中出现次数超过一半的数字#
哈希表和序列找数一个解法遍历numbers数组,同时使用哈希表一个一个往里存数据,如果containsKey,就把值+1,如果没有就put进去这个哈希表中key表示当前数字,value表示它在数组中出现的次数当这个次数超过了长度一般的时候就把numbers[i]返回即可 import java.ut...
2023-08-08
0
391
BM64 题解 | #最小花费爬楼梯#
dp:斐波那契变种和fibbo的区别:dp[i]的组成不光是dp[i-1]和dp[i-2],还有他们对应的代价cost[i-1],cost[i-2]dp[i] 取的是 dp[i-1]+cost[i-1] 和 dp[i-2]+cost[i-2] 中的小值 import java.util.*; p...
2023-08-06
0
384
BM89 题解 | #合并区间#
官方题解:贪心 + 双指针重写一个Collections.sort() 方法,按照区间开头start进行升序排序使用一个结果集res,以及res的指针count,用于指明操作的是哪个区间(一般是最后一个)开始遍历,新遍历到的区间有两种情况:新区间的start <= 原区间的end:说明有重叠...
2023-08-06
0
446
BM54题解 | #三数之和#
双指针第一层for loop固定一个数,从这个数之后的部分中使用双指针,把问题优化成:一层遍历 + 两数之和两个指针 left 和 right分别从子数组的左右出发,num[left] + num[right]小了就把left往右移动,大了就把right往左移动当然,根据题意,还要进行去重操作 e...
2023-08-06
0
417
BM63题解 | #跳台阶#
动态规划其实就是斐波那契数列,一模一样,套了个皮 import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @para...
2023-08-06
0
323
BM86题解 | #大数加法#
解法一:BigInteger有库调库。 import java.util.*; import java.math.*; public class Solution { public String solve (String s, String t) { BigInteger...
2023-08-04
0
384
BM50题解 | #两数之和#
Map 力扣第一题有人夜里相爱,有人开车看海,有人力扣第一题做不出来不要暴力,效率很低,如果遇到很长的陷阱用例可能无法AC遍历数组,用一个HashMap来存数组中遇到的数每次存之前先判断有没有当前这个numbers[i]的“另一半”,如果有就直接返回 i 和“另一半”的下标即可众所周知,HashMa...
2023-08-03
0
391
首页
上一页
1
2
下一页
末页