leetcode周賽補完計畫(五)

2021-09-24 03:16:28 字數 1265 閱讀 1702

周賽137

leetcode 1046. 最後一塊石頭的重量

public int laststoneweight(int stones) 

});for(int i:stones)

q.add(i);

while (q.size() > 1)

return q.peek();

}

leetcode 1047. 刪除字串中的所有相鄰重複項

解題思路:利用棧先入後出的特點,比較棧頂元素和字串元素

public string removeduplicates(string s)  else 

}stringbuffer res = new stringbuffer();

while (!s.isempty())

return res.reverse().tostring();

}

leetcode 1048. 最長字串鏈

解題思路:動態規劃求解當前單詞的最長鏈, length[word2] = max(length[word2], length[word] + 1)

public int longeststrchain(string words) 

});for(int i = 0;i < words.length;i++)

}res = math.max(res,dp[i]);

}return res;

}public boolean ispre(string word1,string word2)

j++;

}if(i == word1.length())

return true;

return false;

}

leetcode 1049. 最後一塊石頭的重量 ii

解題思路:題1046的高階,轉換為揹包問題,對陣列stones求和,對於容量為sum/2的揹包,放入石頭,滿足揹包的重量最大,粉碎石頭的最小重量 = sum - 2 * 揹包內最大石頭重量

public int laststoneweightii(int stones) 

int res = sum / 2;

int dp = new int[res+1];

for(int i = 0;i < stones.length;i++)

}return sum - 2 * dp[res];

}

leetcode周賽補完計畫(三)

周賽135 leetcode 1037.有效的迴旋鏢 解題思路 就是判斷三角形的問題,用的斜率方法,座標抽平行另處理,未優化 public boolean isboomerang int points leetcode 1038.從二叉搜尋樹到更大和樹 解題思路 反向中序遍歷 右子樹 根節點 左子樹...

Leetcode 周賽記錄

希望能記錄到八月中旬開學吧。反正就沒啥意義 周賽回到了他溫柔可人的樣子 前兩周的分割我感覺可能寫起來會比較吃力 40 min搞定,很愉快 a字串分割沒啥好說的。b的話我覺得它應該降低記憶體空間或者增大長度,一看只有七個都brute force了。就不好玩了orz c葉子的定義有毛病 我很奇怪為什麼有...

第五周迭代計畫

設計超必殺技 招式定義 所謂超必殺技,通俗來說就是人物在發這一招的瞬間通常伴隨著畫面震動或者畫面變黑 聲音增大等等特效。招式效果 通常伴隨人物自身體力的大量減少來給對手造成較大傷害。超必殺技在寫法上與普通招式的區別 需要新增在state狀態器裡將hitdef的狀態更改為ha 詞典所記錄的超必殺 新增...