04 2021 档案

摘要:原题链接 分析 因为我们知道使用位运算符进行计算的时候就是使用的二进制位,所以可以直接行移位操作,然后判定有多少个1 public class Solution { // you need to treat n as an unsigned value public int hammingWeigh 阅读全文
posted @ 2021-04-29 13:40 Lngstart 阅读(63) 评论(0) 推荐(1)
摘要:原题链接 分析 有题目可以知道找的是数组中的最小值,最容易想到的方法应该就是直接遍历数组,使用一个变量保存数组中的最小值 class Solution { public int minArray(int[] numbers) { if(numbers.length == 0) return 0; i 阅读全文
posted @ 2021-04-29 13:29 Lngstart 阅读(58) 评论(0) 推荐(1)
摘要:原题链接 因为以前写过这个题解,所以请点击下方链接跳转观看。 请跳转到此处 阅读全文
posted @ 2021-04-29 12:28 Lngstart 阅读(32) 评论(0) 推荐(0)
摘要:思路 分析一下,如果青蛙位于台阶n上,因为青蛙只能跳一阶或2阶,所以只能从n - 1阶或n - 2阶跳过来,所以我们可以得到一个递推公式f(n) = f(n - 1) + f(n - 2) 所以就是和斐波那契的做法是一样的。 参考:斐波那契 class Solution { final int mo 阅读全文
posted @ 2021-04-28 12:33 Lngstart 阅读(52) 评论(0) 推荐(0)
摘要:思路 递归写法 由题目中给出的斐波那契的递推公式f(n) = f(n - 1) + f(n - 2)可以我们可以直接使用递归来计算每一个f(n)的值,最后回溯的时候使得f(n) = f(n - 2) + f(n - 1) class Solution { final int mod = 100000 阅读全文
posted @ 2021-04-28 12:28 Lngstart 阅读(70) 评论(0) 推荐(1)
摘要:题解 class CQueue { Stack<Integer> a, b; public CQueue() { a = new Stack<Integer>(); b = new Stack<Integer>(); } public void appendTail(int value) { a.p 阅读全文
posted @ 2021-04-07 08:43 Lngstart 阅读(36) 评论(0) 推荐(0)
摘要:题解 迭代 先求出链表的长度,最后反着添加元素即可 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; 阅读全文
posted @ 2021-04-06 23:45 Lngstart 阅读(29) 评论(0) 推荐(1)
摘要:题解 直接遍历一遍字符串,使用一个StringBuilder res(使用这个效率高一点)来存储答案,当遇到空格的时候,直接res.append("%20"),其余的直接append就行了 代码如下 class Solution { public String replaceSpace(String 阅读全文
posted @ 2021-04-06 23:35 Lngstart 阅读(37) 评论(0) 推荐(0)
摘要:题解 排序后相邻比较 将数组进行排序之后相邻元素进行比较即可。 时间复杂度:O(n$log_n$) 空间复杂度:O(1) class Solution { public int findRepeatNumber(int[] nums) { Arrays.sort(nums); for(int i = 阅读全文
posted @ 2021-04-05 22:10 Lngstart 阅读(58) 评论(0) 推荐(0)