3/24
128 最長連續序列
本題基本的演算法思想是並查集與雜湊表
len[i]儲存數字i所在的最長連續序列,但其實無需將所有的數字都更新為序列長度,每次只需更新左右兩個端點的數字即可。
每次遍歷乙個數,若曾經出現過,則跳過。若沒有出現過,則令其與左右兩邊的集合合併,令新長度為len[i-1]+len[i+1]+1,更新左右兩個端點和len[i]的值。
class solution //init
for(int i=0;i
for(int j=0;j
if(accounts[i][0]==accounts[j][0]&&!same(i,j))//union accounts
vector > ans;
for(int i=0;i
if(pre[i]==i)//未被合併的集合,加入到ans中
return ans;
3/28
924 儘量減少惡意軟體傳播
並查集class solution
class solution else//初始化所有節點的度
queue zeros;
for(int i=0;i
if(indegree[i]==0)zeros.push(i);
}//將度為0的節點入隊
while(!zeros.empty()));
while(r>l&&nums[l]==nums[l+1])l++;
while(r>l&&nums[r]==nums[r-1])r--;
l++;
return ans;
4/516 最接近的三數之和
與15相似,雙指標法
class solution ;
int res=0;
for(int i=0;i
if(left>m[s[i]]||m[s[i]]==0)elseelseelse if(nums[i]>second_max)
node(int _val, vector _children)
node(int _val, vector _children) {
val = _val;
children = _children;
class solution {
public:
vector ans;
void dfs(node* node){
if(node==null)return;
ans.push_back(node->val);
for(int i=0;ichildren.size();++i)dfs(node->children[i]);
vector preorder(node* root) {
dfs(root);
return ans;
字串轉陣列
將字串按某個字元切割成若干個字串,並以陣列形式返回 var s abc,abcd,aaa ss s.split 在每個逗號 處進行分解。console.log ss abc abcd aaa 擷取陣列中 720替換為 360 function changelargeimg self tophtml ...
php字串轉陣列函式,php字串轉陣列
php字串轉陣列 str split php 5,php 7 str split 將字串轉換為陣列 說明str split string string int split length 1 array 將乙個字串轉換為陣列。引數string 輸入字串。split length 每一段的長度。返回值如...
String字串轉陣列
遇見有關string的例子與問題 string類是不可變的 final 對string類的任何改變,都是返回乙個新的string類物件。string字串轉陣列 string s 2,654,24,6554 1.split string a s.split system.out.print a.len...