摘要:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */public... 阅读全文
摘要:
public class Solution { public int search(int[] nums, int target) { int left = 0; int right = nums.length - 1; int length = nu... 阅读全文
摘要:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */public... 阅读全文
摘要:
第一个解法用了一个HashMap 其实感觉比较笨的方法/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * ... 阅读全文
摘要:
这道题我用O(n)存O(1)取的时候会超时,但是用O(1)存O(n)取就不会超时,个人觉得是因为测试代码中存比取要多得多。。其实觉得最好的方法应该是O(logn)存取,用两个二分搜索,但是还没太想明白应该用什么数据结构能实现public class TwoSum { private H... 阅读全文
摘要:
俩stack模拟queue,每次往第一个里面push,要pop的时候pop第二个,如果第二个为空,先把第一个的都放到第二个里面,再pop第二个。平均下来每个数据的时间复杂度为o(1)class MyQueue { // Push element x to the back of queue. ... 阅读全文
摘要:
很有意思的一道题,找到数学规律,从个位数一直找到最高位比如输入13,那么在个位数上会有 13 / 10 乘以 1 个 1, 这个只是算了10之前的个位数上的1,同时还要加上10到13这一段个位数上的1,这里因为3大于1,所以加以,如果3是小于1的则不加那个一。同理,推导到十位数,13/100为 0 ... 阅读全文
摘要:
public class Solution { public boolean isPowerOfTwo(int n) { int tmp = 1; for (int j = 0; j n) { return false; ... 阅读全文
摘要:
思路和House Robber很像,唯一不同在于当从0开始算的时候,最后的一个房间是一定不可以抢的,所以我们分别算从0和从1开始的,取其中最大值public class Solution { public int rob(int[] nums) { int length = nu... 阅读全文
摘要:
挺有意思的动态规划题目,只和i-2和i-3家的状态有关,取其中最大值public class Solution { public int rob(int[] nums) { int length = nums.length; if (length == 0) { ... 阅读全文