classSolution{publicint[]runningSum(int[] nums){int len = nums.length;int[] res =newint[len];
res[0]= nums[0];for(int i =1; i < len; i++){
res[i]= res[i-1]+ nums[i];}return res;}}
不同整數的最少數目
package com.immunize.leetcode.week193;import java.util.Arrays;import java.util.HashMap;import java.util.Map;/**
*
* 不同整數的最少數目
*
* @author Mr IMMUNIZE
*
*/publicclassSolution2{publicintfindLeastNumOfUniqueInts(int[] arr,int k){// 新建map
Map<Integer, Integer> map =newHashMap<>();// 遍歷,獲取當前數字和數字的頻次存入mapfor(int i =0; i < arr.length; i++){if(map.containsKey(arr[i])){
map.replace(arr[i], map.get(arr[i])+1);}else{
map.put(arr[i],1);}}// k爲0則判斷有幾個不同數字即可,即map的sizeif(k ==0){return map.size();}// 新建結果數組,大小爲map的sizeint[] freq =newint[map.size()];int a =0;// 遍歷map,在val數組中填入對應數字出現的次數for(int key : map.keySet()){
freq[a++]= map.get(key);}// 將val排序,從小到大排
Arrays.sort(freq);// 依次踢出數量少的數字即可int i =0;int res =0;for(i =0; i < freq.length; i++){// 如果k的值大於等於數組中最少的數目的數字,那麼需要踢出不止一個數字,則需要更新k,否則直接跳出循環。if(k - freq[i]>=0){
k = k - freq[i];}elsebreak;}// 總數減去已經踢出去的數
res = freq.length - i;return res;}}