摘要: 自己做的: public static ListNode reverseList(ListNode head) { ListNode cur=head; // ListNode next=head.next; ListNode pre=null; while(cur.next!=null){ Lis 阅读全文
posted @ 2020-04-09 16:15 doyi 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 自己想的: class Solution { public int majorityElement(int[] nums) { Arrays.sort(nums); return nums[nums.length/2]; } } 方法二: 摩尔投票法,时间复杂度O(n),因为要遍历一次数组,空间复杂 阅读全文
posted @ 2020-04-09 15:52 doyi 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 这个题本质就是要求某个数与其右边最大的数的差值,这符合了单调栈的应用场景 当你需要高效率查询某个位置左右两侧比他大(或小)的数的位置的时候,于是就用单调栈解决 官方答案给的一个贪心的算法: public class L121 { public int maxProfit(int prices[]){ 阅读全文
posted @ 2020-04-09 15:40 doyi 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 参考DFS和BFS 方法一:DFS class Solution { public List<String> generateParenthesis(int n) { List<String> res = new ArrayList<>(); // 特判 if (n == 0) { return r 阅读全文
posted @ 2020-04-09 14:57 doyi 阅读(122) 评论(0) 推荐(0) 编辑