leetcode-1456. 定长子串中元音的最大数目
leetcode-1456. 定长子串中元音的最大数目
123456789101112131415161718192021222324252627282930class Solution { public int maxVowels(String s, int k) { Set<Character> set = new HashSet<>(); set.add('a'); set.add('e'); set.add('i'); set.add('o'); set.add('u'); int ans = 0; int x = 0; int i = 0; int j = 0; int n = s.length(); while(j < n){ ...
leetcode-1052. 爱生气的书店老板
leetcode-1052. 爱生气的书店老板
123456789101112131415161718192021222324252627282930class Solution { public int maxSatisfied(int[] customers, int[] grumpy, int X) { int ans = 0; int k = 0; int n = customers.length; int i = 0; int j = 0; int grum = 0; while(j < n){ if(grumpy[j] == 1){ grum += customers[j]; }else{ ans += customers[j]; } ...
leetcode-1367. 二叉树中的列表
leetcode-1367. 二叉树中的列表
1234567891011121314151617181920212223class Solution { public boolean isSubPath(ListNode head, TreeNode root) { if(root == null){ return false; } return dfs(head, root) || isSubPath(head, root.left) || isSubPath(head, root.right); } public boolean dfs(ListNode head, TreeNode root){ if(head == null){ return true; } if(root == null){ return false; ...
leetcode-164. 最大间距
leetcode-164. 最大间距
1234567891011121314class Solution { public int maximumGap(int[] nums) { Arrays.sort(nums); int n = nums.length; if(n < 2){ return 0; } int max = Integer.MIN_VALUE; for(int i = 1; i < n; i++){ max = Math.max(max, nums[i] - nums[i-1]); } return max; }}
leetcode-1370. 上升下降字符串
leetcode-1370. 上升下降字符串
12345678910111213141516171819202122232425262728293031class Solution { public String sortString(String s) { char[] ch = s.toCharArray(); Arrays.sort(ch); int n = ch.length; // 定义一个访问过的数组 boolean[] st = new boolean[n]; StringBuilder sb = new StringBuilder(); while (sb.length() != n) { // 记录前一个字符 char pre = 'A'; for (int k = 0; k < n; k++) { if ...
JVM笔记-06G1垃圾回收器
G1垃圾回收器
G1垃圾回收器是可以同时回收新生代和老年代的对象的,不需要两个垃圾回收器配合起来运作,他一个人就可以搞定所有的垃圾回收,最大的一个特点,就是把Java堆内存拆分为多个大小相等的Region,并且可以让我们设置一个垃圾回收的预期停顿时间
我们直接可以给G1指定,在一个时间内,垃圾回收导致的系统停顿时间不能超过多久,G1全权给你负责,相当于我们就可以直接控制垃圾回收对系统性能的影响,G1可以做到让你来设定垃圾回收对系统的影响,他自己通过把内存拆分为大量小Region,以及追踪每个Region中可以回收的对象大小和预估时间,最后在垃圾回收的时候,尽量把垃圾回收对系统造成的影响控制在你指定的时间范围内,同时在有限的时 间内尽量回收尽可能多的垃圾对象。
触发垃圾回收的时候,可以根据设定的预期系统停顿时间,来选择最少回收时间和最多回收对象的Region进行垃圾回收,保证GC 对系统停顿的影响在可控范围内,同时还能尽可能回收最多的对象。
G1提供了专门的Region来存放大对象,而不是让大对象进入老年代的Region中,在G1中,大对象的判定规则就是一个大对象超过了 ...
leetcode-209. 长度最小的子数组
leetcode-209. 长度最小的子数组
12345678910111213141516171819class Solution { public int minSubArrayLen(int s, int[] nums) { int n = nums.length; int[] arr = new int[n+1]; for (int i = 1; i <= n; i++) { arr[i] = arr[i - 1] + nums[i - 1]; } for (int l = 0; l <= n; l++) { for (int i = 0; i+l < n; i++) { int j = i + l; if (arr[j+1] - arr[i] >= s){ retur ...
leetcode-452. 用最少数量的箭引爆气球
leetcode-452. 用最少数量的箭引爆气球
1234567891011121314151617181920212223242526272829303132class Solution { public int findMinArrowShots(int[][] points) { PriorityQueue<int[]> queue = new PriorityQueue<>(((o1, o2) -> { return Integer.compare(o1[0], o2[0]); })); for(int[] point : points){ queue.offer(point); } int[] arr = null; int count = 0; while (!queue.isEmpty()){ if ( ...
leetcode-222. 完全二叉树的节点个数
leetcode-222. 完全二叉树的节点个数
123456789101112131415161718192021222324class Solution { public int countNodes(TreeNode root) { int count = 0; if(root == null){ return count; } LinkedList<TreeNode> queue = new LinkedList<>(); queue.offer(root); while(!queue.isEmpty()){ int n = queue.size(); for(int i = 0; i < n; i++){ TreeNode node = queue.poll(); coun ...
leetcode-134. 加油站
leetcode-134. 加油站
123456789101112131415161718192021222324252627282930class Solution { int n = 0; int pre = 0; public int canCompleteCircuit(int[] gas, int[] cost) { n = gas.length; for (int i = 0; i < n; i++) { pre = i; if (dfs(gas, cost, i, gas[i])) { return i; } } return -1; } public boolean dfs(int[] gas, int[] cost, int cur , int totalGas) { if (totalG ...