原创 27. 移除元素

給定一個數組 nums 和一個值 val,你需要原地移除所有數值等於 val 的元素,返回移除後數組的新長度。 不要使用額外的數組空間,你必須在原地修改輸入數組並在使用 O(1) 額外空間的條件下完成。 元素的順序可以改變。你不需要考慮數

原创 26. 刪除排序數組中的重複項

給定一個排序數組,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後數組的新長度。 不要使用額外的數組空間,你必須在原地修改輸入數組並在使用 O(1) 額外空間的條件下完成。 示例 1: 給定數組 nums = [1,1,

原创 21. 合併兩個有序鏈表

將兩個有序鏈表合併爲一個新的有序鏈表並返回。新鏈表是通過拼接給定的兩個鏈表的所有節點組成的。  示例: 輸入:1->2->4, 1->3->4 輸出:1->1->2->3->4->4 下面PHP代碼是把輸入的參數當做數組來測試的。 c

原创 20. 有效的括號

給定一個只包括 '(',')','{','}','[',']' 的字符串,判斷字符串是否有效。 有效字符串需滿足: 左括號必須用相同類型的右括號閉合。 左括號必須以正確的順序閉合。 注意空字符串可被認爲是有效字符串。 示例 1: 輸入:

原创 1. 兩數之和

給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和爲目標值的那 兩個 整數,並返回他們的數組下標。 你可以假設每種輸入只會對應一個答案。但是,你不能重複利用這個數組中同樣的元素。 示例: 給定 nums = [

原创 7. 整數反轉

給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。 示例 1: 輸入: 123 輸出: 321  示例 2: 輸入: -123 輸出: -321 示例 3: 輸入: 120 輸出: 21 注意: 假設我們

原创 9. 迴文數

判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 爲 -121 。 從右向

原创 14. 最長公共前綴

編寫一個函數來查找字符串數組中的最長公共前綴。 如果不存在公共前綴,返回空字符串 ""。 示例 1: 輸入: ["flower","flow","flight"] 輸出: "fl" 示例 2: 輸入: ["dog","racecar

原创 輸入某年某月某日,判斷這一天是這一年的第幾天

題目:輸入某年某月某日,判斷這一天是這一年的第幾天? 程序分析:以3月5日爲例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大於3時需考慮多加一天。 #include<stdio.h> //某月的天

原创 有1、2、3、4個數字,能組成多少個互不相同且無重複數字的三位數

題目:有1、2、3、4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少? 程序分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列後再去 掉不滿足條件的排列。 #include<stdio.h> int ma

原创 判斷數字爲幾位數

#include<stdio.h> int main() { int num; printf("請輸入一個整數:\n"); scanf("%d",&num); int i=0; while( num!=0 ){ num

原创 插入排序

#include<stdio.h> //插入排序 int insert_sort(int arr[], int len) { int i, j, temp; for(i=0; i<len-1; i++){ for(j=i

原创 快速排序

#include<stdio.h> //快速排序 int quick_sort(int arr[], int len, int left, int right) { int i, j, t, temp; if (left >=

原创 判斷迴文數

判斷一個數是否爲迴文數。 設n是一任意自然數。若將n的各位數字反向排列所得自然數n1與n相等,則稱n爲一回文數。例如,若n=1234321,則稱n爲一回文數;但若n=1234567,則n不是迴文數   #include<stdio.h>

原创 斐波那契數列 for循環實現

斐波那契數列指的是這樣一個數列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368.