LeetCode 第 15 場雙周賽

2022-07-30 09:21:15 字數 2766 閱讀 6251

1288.刪除被覆蓋區間

1286.字母組合迭代器

1289.下降路徑最小和 ii

下降和不能只保留原陣列中最小的兩個,hacked.

給你乙個非遞減的有序整數陣列,已知這個陣列中恰好有乙個整數,它的出現次數超過陣列元素總數的 25%。

請你找到並返回這個整數

示例:

**輸入:** arr = [1,2,2,6,6,6,6,7,10]

**輸出:** 6

class solution );

for(int i = 0,c = 0;i < n;++i)

return ans.second;

}};

[1288.刪除被覆蓋區間]( covered intervals)

給你乙個區間列表,請你刪除列表中被其他區間所覆蓋的區間。

只有當c <= ab <= d時,我們才認為區間[a,b)被區間[c,d)覆蓋。

在完成所有刪除操作後,請你返回列表中剩餘區間的數目。

示例:

**輸入:** intervals = [[1,4],[3,6],[2,8]]

**輸出:** 2

**解釋:** 區間 [3,6] 被區間 [2,8] 覆蓋,所以它被刪除了。

class solution 

int removecoveredintervals(vector>& intervals)

return ans;

}};

1286.字母組合迭代器

請你設計乙個迭代器類,包括以下內容:

示例:

combinationiterator iterator = new combinationiterator("abc", 2); // 建立迭代器 iterator

iterator.next(); // 返回 "ab"

iterator.hasnext(); // 返回 true

iterator.next(); // 返回 "ac"

iterator.hasnext(); // 返回 true

iterator.next(); // 返回 "bc"

iterator.hasnext(); // 返回 false

class combinationiterator 

string next()

vectorpos;

for(int i = 0; i < combinationlength; i++)

for(int i = pos.size() - 1; i >= 0; --i)

}cur = "";

for(int i = 0, sz = pos.size(); i < sz; ++i)

cur += characters[pos[i]];

return cur;

} void shiftpos(vector&pos, int i)

bool hasnext()

//for(auto i : pos) cout << i << " "; cout << endl;

if(pos[0] == characters.length() - combinationlength)

return false;

return true;

}};/** * your combinationiterator object will be instantiated and called as such:

* combinationiterator* obj = new combinationiterator(characters, combinationlength);

* string param_1 = obj->next();

* bool param_2 = obj->hasnext();

*/

1289.下降路徑最小和 ii

給你乙個整數方陣arr,定義「非零偏移下降路徑」為:從arr陣列中的每一行選擇乙個數字,且按順序選出來的數字中,相鄰數字不在原陣列的同一列。

請你返回非零偏移下降路徑數字和的最小值。

示例 1:

**輸入:** arr = [[1,2,3],[4,5,6],[7,8,9]]

**輸出:** 13

**解釋:**

所有非零偏移下降路徑包括:

[1,5,9], [1,5,7], [1,6,7], [1,6,8],

[2,4,8], [2,4,9], [2,6,7], [2,6,8],

[3,4,8], [3,4,9], [3,5,7], [3,5,9]

下降路徑中數字和最小的是 [1,5,7] ,所以答案是 13 。

class solution }}

int ans = inf;

for(int i = 0;i < m;++i) ans = min(ans,s[n-1][i]);

return ans;

}};

leetcode第8場雙周賽

這次雙周賽有意外,第二第三題按照提示返回int會報錯,要返回list 第一題給你乙個字串 s,返回只含 單一字母 的子串個數。示例 1 輸入 aaaba 輸出 8 解釋 只含單一字母的子串分別是 aaa aa a b aaa 出現 1 次。aa 出現 2 次。a 出現 4 次。b 出現 1 次。所以...

leetcode第 24 場雙周賽

給你乙個整數陣列nums。你可以選定任意的正數startvalue 作為初始值。你需要從左到右遍歷nums陣列,並將 startvalue 依次累加上nums陣列中的值。請你在確保累加和始終大於等於 1 的前提下,選出乙個最小的正數作為 startvalue 輸入 nums 3,2,3,4,2 輸出...

leetcode 第27場雙周賽

通過翻轉子陣列使兩個陣列相等 檢查乙個字串是否包含所有長度為k的二進位制子串 課程安排 摘櫻桃 3分 簡單 4分 中等 5分 中等 6分 困難 翻譯下題意,其實就是問我們兩個陣列是否相等,判斷陣列是否相等有很多方法,這邊我直接排序,遍歷一遍看是否有不一樣的元素 陣列排序的複雜度,故為o nlogn ...