Re: [閒聊] 每日LeetCode

看板Marginalman作者 (是oin的說)時間2年前 (2023/11/18 17:43), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串526/719 (看更多)
https://i.imgur.com/jfLFSZI.png
給一串陣列 跟一個數字k 要找到出現最多次的數字 能用k個1加在各個數字上 讓數字變大 直到k用完 範例 [ 1 , 2 , 3 ] k=4 先看1 差 = 3-1 = 2 消耗掉兩個k 1變成3 再看2 差 = 3-2 = 1 消耗一個k 2變成3 現在有3個3了 輸出出現最多次的數就是三 我的做法是 假設這裡有個數字 我就很暴力的 直接從離他最近的數字找 找到k用完 把所有數字找一次 就可以知道答案惹 姆咪 ```c int maxFrequency(int* nums, int numsSize, int k) { int map[100001] ={}; int maxsame = 0; int same = 0; int kt = 0; for(int i = 0 ; i < numsSize ; i++) { map[nums[i]] ++; } for(int i = 0 ; i < 100001 ; i++) { if(map[i] != 0) { kt = k; same = map[i]; for(int j = i-1 ; j > 0 ; j --) { if(map[j]!= 0) { for(int t = 0 ; t < map[j] ; t++) { if(kt >= i - j) { kt = kt - (i-j); same ++; } } if(kt < i - j) { break; } } } if(same > maxsame) { maxsame = same; } } } return maxsame; } ``` -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 134.208.57.64 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1700300623.A.D6E.html
文章代碼(AID): #1bM8TFrk (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1bM8TFrk (Marginalman)