Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/weitsunglin/cpp-gitaction-template-using-leetcode

github action complie cpp, using leetcode
https://github.com/weitsunglin/cpp-gitaction-template-using-leetcode

cpp github-actions leetcode

Last synced: 27 days ago
JSON representation

github action complie cpp, using leetcode

Awesome Lists containing this project

README

        

# LeetCode

## 27. Remove Element

**學習目標:** 雙指針技術

**需求:** 從數組中移除指定的元素。

**解決方案:** 直接找到不等於要刪除元素的值,並重新賦值給數組,返回數組的新長度。

## 136. Single Number

**學習目標:** 位操作 (XOR)

**需求:** 給定一個非空的整數數組 nums,每個元素出現「兩次」,除了有一個只出現一次。找出那個只出現一次的數字。

**解決方案:** 使用 ^= (XOR) 和一個循環來找到只出現一次的數字,因為 A ⊕ 0 = A 且 A ⊕ A = 0。

## 203. Remove Linked List Elements

**學習目標:** 鏈表遍歷和修改

**需求:** 給定一個鏈表的頭節點和一個整數 val,移除所有節點值等於 val 的節點,並返回新的頭節點。

**解決方案:** 第一個元素和第二個元素不以相同的方式處理,但都先存儲為 temp,然後將頭節點指向下一個節點,最後刪除 temp。

## 26. Remove Duplicates from Sorted Array

**學習目標:** 原地數組操作

**需求:** 給定一個按非遞減順序排序的整數數組 nums,原地刪除重複項,使每個唯一元素只出現一次。元素的相對順序應保持不變。然後返回 nums 中唯一元素的個數。

**解決方案:** 使用 k 作為索引查找,由於第一個元素總是唯一的,從第二個元素開始查找,如果當前元素與前一個元素不同,則將當前元素移動到 k 位置,最後返回 k(不重複元素的長度)。

## 344. Reverse String

**學習目標:** 雙指針技術

**需求:** 編寫一個函數,接收一個字符串作為輸入並返回反轉後的字符串。

**解決方案:** 使用兩個索引,一個在前,一個在後,雙向向中心移動,並在移動過程中互相交換。

## 1. Two Sum

**學習目標:** 哈希映射

**需求:** 給定一個整數數組 nums 和一個整數目標值 target,返回兩個數的索引,使它們的和等於目標值 target。

**解決方案:** 使用映射來比較數組中的每個元素與目標值。

## 20. Valid Parentheses

**學習目標:** 棧的使用

**需求:** 給定一個只包含字符 '(', ')', '{', '}', '[' 和 ']' 的字符串 s,判斷輸入字符串是否有效。

**解決方案:** 將字符推入棧中,然後使用棧頂與下一個字符匹配,如果匹配,則彈出字符並繼續下一組匹配。

## 121. Best Time to Buy and Sell Stock

**學習目標:** 動態規劃

**需求:** 給定一個數組 prices,其中 prices[i] 是某只股票在第 i 天的價格。你想要通過選擇某一天買入一只股票並選擇不同的一天賣出來最大化你的利潤。返回你可以從這筆交易中獲得的最大利潤。如果不能獲得任何利潤,返回 0。

**解決方案:** 記錄兩個值:最低價格和最大利潤。使用循環訪問每一天的價格,先找到最低價格,然後使用當前價格和最低價格來計算最大利潤。

## 169. Majority Element

**學習目標:** 投票算法

**需求:** 給定大小為 n 的數組 nums,返回多數元素。多數元素是指在數組中出現次數多於 ⌊n / 2⌋ 的元素。你可以假設數組是非空的,並且多數元素總是存在。

**解決方案:** 聲明兩個變量,一個用於候選人,另一個用於候選人的計數,使用循環訪問數組,當訪問一個元素時,當元素的計數為 0 時,訪問的元素將變成候選人,然後如果訪問的元素等於候選人,元素的計數 +1,否則 -1。

## 58. Length of Last Word

**學習目標:** 字符串操作

**需求:** 給定一個由單詞和空格組成的字符串 s,返回字符串中最後一個單詞的長度。

**解決方案:** 很簡單,從後面找,使用字符串的索引來查找,如果找到的字符不等於空格,計數 +1。

## 206. Reverse Linked List

**學習目標:** 指針操作

**需求:** 給定單鏈表的頭節點,反轉鏈表,並返回反轉後的鏈表。

**解決方案:** 使用兩個指針從頭開始反轉並返回反轉後的頭節點。

## 35. Search Insert Position

**學習目標:** 二分查找

**需求:** 給定一個排序的不同整數數組和一個目標值,返回目標值如果被找到的索引。如果沒找到,返回它應插入的位置的索引。

**解決方案:** 使用二分搜尋法查找目標值,如果沒有找到,最後返回的是 low 索引,這個索引指向了目標值應插入的位置。

## 28. Find the Index of the First Occurrence in a String

**學習目標:** 子字符串搜索

**需求:** 給定兩個字符串 needle 和 haystack,返回 needle 在 haystack 中的第一個匹配項的索引,如果 needle 不是 haystack 的一部分,則返回 -1。

**解決方案:** 獲取 haystack 及 needle 的長度,並使用 needle 去匹配 haystack 子字符串,匹配的次數用 haystack 扣除 needle,這樣 needle 匹配就不會超過 haystack。

## 171. Excel Sheet Column Number

**學習目標:** 進制轉換

**需求:** 給定表示 Excel 表格列標題的字符串 columnTitle,返回其對應的列號。

**解決方案:** 從左到右處理字符串,使用 26 進制的概念,例如 "AB" 就是 0X26+1 + 1X26+1 = 28。

© 2024 weitusnglin. All rights reserved.