Problem
Given a char array representing tasks CPU need to do. It contains capital letters A to Z where different letters represent different tasks.Tasks could be done without original order. Each task could be done in one interval. For each interval, CPU could finish one task or just be idle.
However, there is a non-negative cooling interval n that means between two same tasks, there must be at least n intervals that CPU are doing different tasks or just be idle.
You need to return the least number of intervals the CPU will take to finish all the given tasks.
Example:Input: tasks = ["A","A","A","B","B","B"], n = 2 Output: 8 Explanation: A -> B -> idle -> A -> B -> idle -> A -> B.Note:
The number of tasks is in the range [1, 10000].
The integer n is in the range [0, 100].
class Solution { public int leastInterval(char[] tasks, int n) { int[] records = new int[26]; for (char ch: tasks) { records[ch-"A"]++; } Arrays.sort(records); int i = 25; while (i >= 0 && records[i] == records[25]) i--; return Math.max(tasks.length, (records[25]-1)*(n+1) + (25-i)); } }Using counter
class Solution { public int leastInterval(char[] tasks, int n) { int[] records = new int[26]; int max = 0, maxCount = 0; for (char ch: tasks) { records[ch-"A"]++; if (records[ch-"A"] == max) maxCount++; else if (records[ch-"A"] > max) { maxCount = 1; max = records[ch-"A"]; } } int parts = (n+1) * (max-1); int part = maxCount; return Math.max(tasks.length, parts+part); } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71842.html
摘要:接下來,就看怎么用協程來實現異步了。直接拿的原始寫代碼會死人的。引入協程就是為了把上下連續的業務邏輯放在一個協程里,把與業務關系不大的的處理部分放到框架的里。第三部分是放棄掉執行權。這樣一個只能接收打印一行的異步應用就寫好了。 前面已經準備好了greenlet對應的Java版本了,一個刪減后的kilim(http://segmentfault.com/blog/taowen/11900...
摘要:基本上所有的網絡應用都會示范一個的寫法。除了這些操作的主體是而不是,操作的是,而不是。以為例其過程是這樣的這段代碼就是創建一個,并注冊一個,并把附著到上。關鍵之一顯然是利用了協程的和,把回調轉換成順序的邏輯執行。 基本上所有的網絡應用都會示范一個tcp的echo寫法。前面我們已經看到了如何使用協程和異步io來做tcp服務器的第一步,accept。下面是一個完整的echo server的...
摘要:包主要實現類,這是一個抽象類,實現了通用的模板方法,并在方法內部判斷錯誤重試去重處理等。重置重復檢查就是清空,獲取請求總數也就是獲取的。至于請求總數統計,就是返回中維護的的大小。 Scheduler是Webmagic中的url調度器,負責從Spider處理收集(push)需要抓取的url(Page的targetRequests)、并poll出將要被處理的url給Spider,同時還負責...
摘要:還可以看到任務運行的開始時間,結束時間,運行時間,點擊就可以看到這個任務執行詳情,包括有向無環圖,和或節點具體的運行記錄。 摘要: MaxCompute(原ODPS)的概念 海量數據處理平臺,服務于批量結構化數據的存儲和計算,提供海量數據倉庫的解決方案以及針對大數據的分析建模服務.(官方文檔有這里就不多做介紹了)官方文檔鏈接 優勢 用戶不必關心分布式計算細節,從而達到分析大數據的目的。...
閱讀 3310·2023-04-25 19:42
閱讀 1329·2021-11-23 10:11
閱讀 2252·2021-11-16 11:51
閱讀 1590·2019-08-30 15:54
閱讀 2036·2019-08-29 18:44
閱讀 1609·2019-08-23 18:24
閱讀 494·2019-08-23 17:52
閱讀 1764·2019-08-23 15:33