10 2020 档案
摘要:/* public class TreeLinkNode { int val; TreeLinkNode left = null; TreeLinkNode right = null; TreeLinkNode next = null; TreeLinkNode(int val) { this.va
阅读全文
摘要:class Solution { public int reversePairs(int[] nums) { int left = 0; int right = nums.length-1; int cnt=0; int[] tmp = new int[nums.length]; Arrays.fi
阅读全文
摘要:class Solution { public int findPeakElement(int[] nums) { if(nums.length==1||nums[0]>nums[1]){ return 0; } if(nums[nums.length-1]>nums[nums.length-2])
阅读全文
摘要:class Solution { public int maxProfit(int[] prices) { int len = prices.length; int res = 0; int i = 0; while(i < len - 1){ while(i < len - 1 && prices
阅读全文
摘要:class Solution { public int twoCitySchedCost(int[][] costs) { int len = costs.length; int t = len/2; Arrays.sort(costs,(a,b)->{return a[0]-a[1]-(b[0]-
阅读全文
摘要:class Solution { public int coinChange(int[] coins, int amount) { Arrays.sort(coins); int[] dp = new int[amount+1]; Arrays.fill(dp,amount+1); dp[0] =
阅读全文
摘要:class Solution { public ListNode reverse(ListNode a,ListNode b){ a.next = b.next; b.next = null; b.next = a; return b; } public ListNode swapPairs(Lis
阅读全文
摘要:class Solution { public TreeNode Build(int[]nums,int left,int right){ if(left>right){ return null; } int mid = (left+right)>>1; TreeNode t = new TreeN
阅读全文
摘要:运行时数据区域 程序计数器 每个线程都会有一个私有的程序计数器。这是一块较小的内存区域,是当前线程所执行的字节码的行号指示器。当线程执行一个Java方法时,该计数器记录的是当前执行的虚拟机字节码指令的地址;当线程执行的是本地方法时,这个计数器的值应该为空。因此,该内存区域是唯一一个没有规定任何OOM
阅读全文
摘要:class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int[] res = new int[m+n+1]; int l1 = 0; int l2 = 0; int i=0; while((l1<m)
阅读全文
摘要:class Solution { public int longestConsecutive(int[] nums) { if(nums==null){ return 0; } Arrays.sort(nums); PriorityQueue<Integer> que = new PriorityQ
阅读全文
摘要:class Solution { public int longestConsecutive(int[] nums) { if(nums==null){ return 0; } Arrays.sort(nums); PriorityQueue<Integer> que = new PriorityQ
阅读全文
摘要:并发,指的是在一段时间内,多个任务近似地在同时运行,也就是时间宏观上的并行。 实现多线程编程,需要实现Runnable接口或继承Thread类(不推荐,成本较实现接口更高,灵活性更低)。Runnable和Thread中都有一个run()方法,是需要子类进行实现的。当实例化一个进程对象时,Thread
阅读全文
摘要:class Solution { public void dfs(List<List<Integer>>res,TreeNode t,int sum,LinkedList<Integer>que){ if((sum-t.val)==0&&(t.left==null&&t.right==null)){
阅读全文
摘要:class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> res = new LinkedList<>(); Deque<TreeNode> stack = new LinkedLis
阅读全文
摘要:class Solution { public List<Integer> inorderTraversal(TreeNode root) { Deque<TreeNode> stack = new LinkedList<>(); TreeNode t = root; List<Integer> r
阅读全文
摘要:class Solution { public List<Integer> postorderTraversal(TreeNode root) { List<Integer> res = new LinkedList<>(); Deque<TreeNode> stack = new LinkedLi
阅读全文
摘要:public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { if(headA==null||headB==null){ return null; } ListNode a
阅读全文
摘要:class Solution { public String addStrings(String num1, String num2) { int mlen = Math.min(num1.length(),num2.length())-1; String res = new String(); i
阅读全文
摘要:class Solution { public ListNode Find(ListNode head){ ListNode slow = head; ListNode quick = head; while(slow!=null&&quick!=null){ if(quick.next!=null
阅读全文
摘要:class MinStack { Deque<Integer> stack; Deque<Integer> min_stack; /** initialize your data structure here. */ public MinStack() { stack = new LinkedLis
阅读全文
摘要:class Solution { private TreeNode res = null; public boolean dfs(TreeNode root,TreeNode p,TreeNode q){ if(root==null){ return false; } boolean lchild
阅读全文
摘要:class Solution { public void HeapAdjust(int[] nums,int s,int d){ //int t = nums[s]; int k = s; for(int i=s*2+1;i<=d;i=i*2+1){ if((i+1<=d)&&nums[i]<num
阅读全文
摘要:ArrayList 其实刚开始没有准备很认真读,但。。读都读了 ,还是好好把注解也读了吧。结果发现了一个不错的点。虽然ArrayList是非线程安全的,但当有两个及以上的线程同时对ArrayList进行结构上的操作(增删元素、修改某个元素的值不算)时,它对外表现得是被加了锁。(老意译了)读注释太累了
阅读全文
摘要:我写的bug也太多了 class Solution { public List<List<Integer>> zigzagLevelOrder(TreeNode root) { List<List<Integer>> res = new LinkedList<List<Integer>>(); if
阅读全文
摘要:本来想自己写个二分查找,想了想好累。。。还是遍历吧 class Solution { public TreeNode binaryTree(int[]preorder,int[]inorder,int start,int end,int begin,int fin) { if(start>end){
阅读全文
摘要:class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { if(l1==null){ return l2; } if(l2==null){ return l1; } int t=0; ListNode res
阅读全文
摘要:今天算是正式开始读源码了。看了许多面经,发现不读源码还是不行。今天稍微看了看一些接口和抽象类等,大致有了点理解。总结点它们之间的区别吧 Collection和Collections Collection是个接口,规范了一些相关的类必备的方法。其中,List、Set、Queue、Deque都继承自Co
阅读全文
摘要:接口 定义了一组对类的需求。实现接口的类,必须要实现接口内定义的方法。书中举例为,需要调用Arrays.sort()方法的类必须实现Comparable接口,而实现Comparable接口的类必须要实现Comparable接口中包含的compareTo方法。当然通常接口都定义了不止一个方法,也就是说
阅读全文
摘要:/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ publi
阅读全文
摘要:class Solution { public int binary_search(int[]nums,int left,int right,int target){ int mid=0; while(left<=right){ mid = (left+right)/2; if(nums[mid]>
阅读全文
摘要:class Solution { public int maxProfit(int[] prices) { int res=0; int MinPrice = Integer.MAX_VALUE; int len = prices.length-1; for(int i=0;i<=len;i++){
阅读全文
摘要:板子题做多了的弊病,条件总是考虑不全。再接再厉!下次遇到一维数组扫描的,直接双指针再说,不犹豫了。 class Solution { public List<List<Integer>> threeSum(int[] nums) { List<List<Integer>> res = new Arr
阅读全文
摘要:又是一个之前没有好好学的点,落下的东西实在太多了,希望来得及。 书中写到,反射机制可以用来:1、在运行时分析类的能力。2、在运行时查看对象。3、实现通用的数组操作代码。4、利用Method对象,这个对象很像C++中的函数指针。 Class类 程序运行期间,系统始终为所有对象维护一个被称为运行时的类型
阅读全文
摘要:这次总结一下阅读了《Java核心技术卷1》继承章节的相关知识点。 重载和重写 重载和重写算是本章遇到的第一个基础却又无比重要的概念了。在书中将重写翻译成了覆盖,不过并不影响学习。 重写:一般指的,子类对父类中存在的方法,进行重新的定义。要求是,方法头(包括参数表、函数名、返回值、访问关键字)应与原父
阅读全文
浙公网安备 33010602011771号