倆數之和(leetcode簡單篇第一題)
給定一個整數陣列 nums 和一個目標值 target,請你在該陣列中找出和為目標值的 兩個 整數。
你可以假設每種輸入只會對應一個答案。但是,你不能重複利用這個陣列中同樣的元素。
示例:給定 nums = [2, 7, 11, 15], target = 9
因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
拿到題我們可以利用雙指標的思想,定義一個快變數,一個慢變數來進行測試陣列中倆個數的結果
int* twoSum(int* nums, int numsSize, int target) {
static int a[2]={0};
for (int i = 0; i < numsSize - 1; i++)
{
for (int j = i+1; j < numsSize; j++)
{
if (nums[i] + nums[j] == target)
{
a[0] = i;
a[1] = j;
return a;
}
}
}
return 0;
}
相關推薦
倆數之和(leetcode簡單篇第一題)
給定一個整數陣列 nums 和一個目標值 target,請你在該陣列中找出和為目標值的 兩個 整數。 你可以假設每種輸入只會對應一個答案。但是,你不能重複利用這個陣列中同樣的元素。 示例:給定 nums = [2, 7, 11, 15], target = 9 因為 nums
相交連結串列(leetcode簡單篇第一百六十題)
編寫一個程式,找到兩個單鏈表相交的起始節點。 例如,下面的兩個連結串列: A: a1 → a2 ↘ c1 → c2 → c3 ↗ B: b1 → b2 → b3 在節點 c1 開始相交。 注意: 如果兩個連結串列沒有交點,返回 null. 在返回結
LeetCode——倆數之和(Two Sum)
給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。 你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。 示例: 給定 nums = [2, 7, 11, 15], target = 9 因為 nums[0] + nums[1] = 2 + 7 = 9 所以返回
迴文數(leetcode簡單篇第九題)
迴文數:迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數 舉例:121 , 12321 ,1221,12233221都為迴文數(對稱的),120不為迴文數,負數不為迴文數 判斷的方法:1.我們可以旋轉一半原數字,比如1221旋轉一半之後為12 ,旋轉了倆次,每旋轉一次
數字轉換為十六進位制數(leetcode簡單篇四百零五題)
給定一個整數,編寫一個演算法將這個數轉換為十六進位制數。對於負整數,我們通常使用 補碼運算 方法。 注意: 十六進位制中所有字母(a-f)都必須是小寫。 十六進位制字串中不能包含多餘的前導零。如果要轉化的數為0,那麼以單個字元’0’來表示;對於其他情況,十六進位制字串中
最大子序和(leetcode簡單篇第五十三題)
給定一個整數陣列 nums ,找到一個具有最大和的連續子陣列(子陣列最少包含一個元素),返回其最大和。 示例: 輸入: [-2,1,-3,4,-1,2,1,-5,4], 輸出: 6 解釋: 連續子陣列 [4,-1,2,1] 的和最大,為 6。 int maxSubA
報數(leetcode簡單篇第三十八題)
報數序列是一個整數序列,按照其中的整數的順序進行報數,得到下一個數。其前五項如下: 1 11 21 1211 111221 1 被讀作 “one 1” (“一個一”) , 即 11。 11 被讀作 “two 1s”
搜尋插入位置(leetcode簡單篇第三十五題)
給定一個排序陣列和一個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。 你可以假設陣列中無重複元素。 示例 1: 輸入: [1,3,5,6], 5 輸出: 2 示例 2: 輸入: [1,3,5,
實現strstr(leetcode簡單篇第二十八題)
實現 strStr() 函式。 給定一個 haystack 字串和一個 needle 字串,在 haystack 字串中找出 needle 字串出現的第一個位置 (從0開始)。如果不存在,則返回 -1。 示例 1: 輸入: haystack = “hello”, n
移除元素(leetcode簡單篇二十七題)
給定一個數組 nums 和一個值 val,你需要原地移除所有數值等於 val 的元素,返回移除後陣列的新長度。 不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 O(1) 額外空間的條件下完成。 元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。 示例
刪除陣列中的重複項(leetcode簡單篇第二十六題)
給定一個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。 不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 O(1) 額外空間的條件下完成。 示例 1: 給定陣列 nums = [1,1,2], 函式應該返回新的
最長公共字首(leetcode簡單篇第十四題)
ps:因為筆者也是個剛接觸程式語言的菜鳥,所以這裡的文章都是拿c語言寫的,如果同學們想拿其他語言可以在讀懂原理之後用其他語言書寫 編寫一個函式來查詢字串陣列中的最長公共字首。 如果不存在公共字首,返回空字串 “”。 示例 1: 輸入: [“flower”,“fl
整數反轉(leetcode簡單篇第七題)
ps:因為筆者也是個剛接觸程式語言的菜鳥,所以這裡的文章都是拿c語言寫的,如果同學們想拿其他語言可以在讀懂原理之後用其他語言書寫 給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。 示例 1: 輸入: 123 輸出: 321 示例 2: 輸入: -123
羅馬數字轉整數(leetcode簡單篇第十三題)
羅馬數字中有這7個字元 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 I表示1,II表示2,但4表示方法為IV,5為V,7是VII,90為XL,所以有下面的幾種特殊情況: I 可以放在 V (5) 和 X (10) 的左邊,來表示 4 和 9。
買賣股票的最佳時機(leetcode簡單篇一百二十一,一百二十二題)
給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 如果你最多隻允許完成一筆交易(即買入和賣出一支股票),設計一個演算法來計算你所能獲取的最大利潤。 注意你不能在買入股票前賣出股票。 示例 1: 輸入: [7,1,5,3,6,4] 輸出: 5 解釋
爬樓梯(leetcode簡單篇第七十題)
假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。 1 階 + 1 階 2
x的平方根(leetcode簡單篇第六十九題)
實現 int sqrt(int x) 函式。 計算並返回 x 的平方根,其中 x 是非負整數。 由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。 示例 1: 輸入: 4 輸出: 2 示例 2: 輸入: 8 輸出: 2 說明: 8
最後一個單詞的長度(leetcode簡單篇第五十八題)
給定一個僅包含大小寫字母和空格 ’ ’ 的字串,返回其最後一個單詞的長度。 如果不存在最後一個單詞,請返回 0 。 說明:一個單詞是指由字母組成,但不包含任何空格的字串。 示例: 輸入: “Hello World” 輸出: 5 筆者拿到這道題時也算是入坑了,
移除連結串列元素(leetcode簡單篇二百零三題)
刪除連結串列中等於給定值 val 的所有節點。 示例: 輸入: 1->2->6->3->4->5->6, val = 6 輸出: 1->2->3->4->5 struct ListNode* remove
另一個樹的子樹(leetcode簡單篇五百七十二題)
給定兩個非空二叉樹 s 和 t,檢驗 s 中是否包含和 t 具有相同結構和節點值的子樹。s 的一個子樹包括 s 的一個節點和這個節點的所有子孫。s 也可以看做它自身的一棵子樹。 示例 1: 給定的樹 s: 3 / \ 4 5 / 1 2 給定的樹 t: