LeetCode刷题日记
今天你leetcode了吗?
ErizJ
无限进步
展开
-
剑指 Offer 58 - II. 左旋转字符串
拿到这道题的思路就是emmm,根据以往的经验,题目给的测试用例一般会很长,如果长度n超过了字符串s的长度length就会显得冗余,所以给长度n对字符串s长度length取个余,然后根据去余结果n开一个辅助数组存放要移动的n元素,不然在后面的移位中这n元素会被覆盖从而丢失,然后就是简单的后面移位,前面补到后面的操作了 class Solution { public String reverseLeftWords(String s, int n) { int length = s.le.原创 2021-05-14 17:11:10 · 88 阅读 · 0 评论 -
剑指 Offer 05. 替换空格
class Solution { public String replaceSpace(String s) { int n = 0; int length = s.length(); StringBuilder ans = new StringBuilder(); while(n < length){ char c = s.charAt(n++); if(c == ' '){ .原创 2021-05-01 00:52:08 · 76 阅读 · 1 评论 -
剑指 Offer 10- II. 青蛙跳台阶问题
这个的思路和斐波那契数列那题差不多,直接递推… class Solution { public int numWays(int n) { int []f = new int[101]; f[0] = 1; f[1] = 1; for(int i = 2; i <= n; i++){ f[i] = f[i-1] % 1000000007 + f[i-2] % 1000000007; } .原创 2021-05-01 00:43:48 · 66 阅读 · 1 评论 -
剑指 Offer 10- I. 斐波那契数列
一开始一看数据规模0<=n<=100直接就是一套递归 class Solution { public int fib(int n) { if(n==0) return 0; if(n==1) return 1; return fib(n-1)+fib(n-2) %1000000007; } } 然后就… 那就采用递推吧…(其实也可以理解为动态规划) class Solution .原创 2021-04-30 23:24:41 · 55 阅读 · 1 评论 -
LeetCode-349 两个数组的交集
由于收到LeetCode-1的启发,使用哈希集合存储元素,则可以在 O(1) 的时间内判断一个元素是否在集合中,从而降低时间复杂度,我决定要用map来做,把一个数组的值全部放进map里,再遍历第二个数组,如果map中有第二个数组包含的数,证明是两个数组的交集部分,把这交集部分加入集合set中(这里用set主要考虑到的是set中有自动去重,如果要用ArrayList还要加一句重复判断,果断用set),遍历结束后set的大小就是我们要返回的数组ans的大小,我们再用迭代器遍历set,把里面的值赋给ans返回即.原创 2021-04-23 17:10:00 · 59 阅读 · 0 评论 -
LeetCode-1 两数之和
class Solution { public int[] twoSum(int[] nums, int target) { int []ans = new int[2]; for(int i = 0; i < nums.length; i++){ for(int j = i + 1; j < nums.length; j++){ if(nums[i] + nums[j] == target){ .原创 2021-04-23 15:54:42 · 43 阅读 · 0 评论