摘要:
思路: 排序,数组有序后若有满足题意的数字,则其一定在数组的中间位置。 时间复杂度O(nlogn),空间复杂度O(logn) class Solution { public int majorityElement(int[] nums) { Arrays.sort(nums); return num 阅读全文
摘要:
DFS层次遍历,设置层数n,在node中按层数创建该层的数组,dfs时每层加入该层对应数组。 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNo 阅读全文
摘要:
ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制。 ArrayList 继承了 AbstractList ,并实现了 List 接口。 ArrayList 类位于 java.util 包中,使用前需要引入它,语法格式如下: import java.util. 阅读全文
摘要:
对称的二叉树要求 对于树中 任意两个对称节点 L 和 R ,一定有: L.val = R.val:即此两对称节点值相等。 L.left.val = R.right.val:即 L 的 左子节点 和 R 的 右子节点 对称; L.right.val = R.left.val:即 L 的 右子节点 和 阅读全文
摘要:
这道题要求将数组中奇数放前面偶数放后面,不需要排序。 第一时间想到的是额外数组res存结果,遍历原数组奇数存在res前面,偶数存在res后面。 时间复杂度O(n),空间复杂度O(n),好处是没有修改原数组 class Solution { public int[] exchange(int[] nu 阅读全文
摘要:
牛客网上做题遇到的问题,以下是网友比较全面的总结: 阅读全文
摘要:
这道题表面上是一个简单的数组排序输出最小值的问题,但考虑到旋转数组的部分有序性,可以简化查找最小值的过程。 如我选择从数组末尾开始查找,由于旋转,数组末端旋转后的部分从尾部遍历是递减的,当num[i]<num[i-1]时,找到旋转前数组第一个元素,即最小值。 代码如下: class Solution 阅读全文
摘要:
1.概述 2.对象回收算法 执行垃圾回收之前,要判断哪些内存需要回收,在JVM垃圾回收机制中主要体现为两种对象回收算法。 2.1 引用计数算法 给对象添加一个引用计数器,难以解决循环引用的问题,因此主流的java虚拟机基本上没有选用引用计数算法来管理内存的。 从图中可以看出,如果不小心直接把 Obj 阅读全文