package com.dota; import org.apache.commons.collections4.list.TreeList; import java.util.HashMap; public class Solution { public static void main(String[] args) { var a = new TreeList(); a.add(1); a.add(2); a.add(1); System.out.println(a.get(2)); Integer.bitCount(1231); } // 1423. 可获得的最大点数 public int maxScore(int[] cardPoints, int k) { int max; int n = cardPoints.length; int len = n - k; int sum = 0; for (int cardPoint : cardPoints) { sum += cardPoint; } int temp = 0; for (int i = 0; i < len; i++) { temp += cardPoints[i]; } max = temp; for (int i = len; i < n; i++) { temp -= cardPoints[i - len]; temp += cardPoints[i]; if (temp < max) { max = temp; } } return sum - max; } // 2048. 下一个更大的数值平衡数 public int nextBeautifulNumber(int n) { while (!ok(++n)) { } return n; } private boolean ok(int n) { if (n == 0) { return false; } int[] dp = new int[10]; while (n != 0) { int t = n % 10; dp[t]++; if (dp[t] > t) { return false; } n /= 10; } for (int i = 1; i < dp.length; i++) { if (dp[i] != 0 && dp[i] != i) { return false; } } return true; } } class Solution2 { public long beautifulSubarrays(int[] nums) { long count = 0; var map = new HashMap(); map.put(0, 1); var mask = 0; for (int num : nums) { mask ^= num; count += map.getOrDefault(mask, 0); map.put(mask, map.getOrDefault(mask, 0) + 1); } return count; } }