LeetCode每日一題--2021.11.1
阿新 • • 發佈:2021-11-01
題目:575. 分糖果 -----難度:簡單
今天是2021.11.1,今天開始我又重新拾起每日一刷LeetCode的信心啦,最近玩的太多了,害怕找不到工作,那就繼續努力吧
先來自己和自己嘮嘮嗑,嘮嘮最近的趣事
- 昨天熬夜看比賽了,EDG半決賽打三星,打滿bo5給我贏了,還是蠻開心的,比較我這個老澱粉看EDG的比賽也是有五年了
- 打球認識了一個學妹,不是特別感冒
- 本來說下週去看007:無暇赴死,結果今天說封校了,沒辦法只能不去了
- 最近玩的有點多了,連續打球打了一週,這一個月我要好好靜下心來去繼續衝
1.進入正題
題目描述
題目意思大概讀懂了,我啪的一下第一反應就是,妹妹獲得的糖果數量不可能超過candyType的一半
class Solution { public int distributeCandies(int[] candyType) { //妹妹最大能獲得的糖果數也只是引數陣列的一半,當 //設定最大能獲得的糖果數量 int MAX=candyType.length/2; //安排一個map Map<Integer, Integer> mp=new HashMap<>(); for(Integer x:candyType) { //如果這個種類的糖果存在的話 if(mp.containsKey(x)==true) mp.put(x, mp.get(x)+1); else { mp.put(x,1); } } int Type_N=mp.keySet().size(); return (Type_N>MAX? MAX:Type_N); } }
我一看這時間,不合理啊,好慢,我又去學點新做法吧
2.稍微改進
class Solution { public int distributeCandies(int[] candyType) { //妹妹最大能獲得的糖果數也只是引數陣列的一半,當 //設定最大能獲得的糖果數量 int MAX=candyType.length/2; Set<Integer> st=new HashSet<>(); for(Integer x:candyType) { st.add(x); } return (st.size()>MAX? MAX:st.size()); } }
我中間的map究其原因都是為了求得無重複元素一個集合(屬於是用雜湊表用魔怔了),改成set之後快了好多
結果
我直接睡覺