原创 經典快慢指針————leetcode第26題

題目如下(出自leetcode第26題): 給定一個排序數組,你需要在 原地 刪除重複出現的元素,使得每個元素只出現一次,返回移除後數組的新長度。 不要使用額外的數組空間,你必須在 原地 修改輸入數組 並在使用 O(1) 額外空間

原创 排序算法(四)————歸併排序

歸併排序原理: 是將兩個有序數列再次進行排序後插入到數列中,使其形成一個有序的數列的過程,當然,假如要有兩個有序數列本身條件就是很困難的,所以採用了分治法將數列進行不斷切分,到最後每個小數列只存在一個元素,便可看作是有序,利用遞歸

原创 排序算法(三)————選擇排序

選擇排序原理與實現: 從一組數中挑選最大一個放到尾部,除去最後一個以外的數據再次選擇最大的放到尾部,以此類推。 例: 有以下幾個數:3 7 4 2 6 1,請使用選擇排序將他們從小到大排列 解: 第一趟: 3 7 4 2 6 1

原创 查找算法————二分查找

二分查找是一個常用的查找算法,其原理在於通過不斷切分一個規則排序,對半的去尋找目標元素所在的區間與位置。但是其有一個前提,那就是數據結構需要是順序存儲結構,並且關鍵字大小有序排列。例子如下: 例: 有一個數列:12,23,45,5

原创 二分查找的實際應用————從leetcode第35題說起

下面是leetcode第35題,難度easy: 給定一個排序數組和一個目標值,在數組中找到目標值,並返回其索引。如果目標值不存在於數組中,返回它將會被按順序插入的位置。 你可以假設數組中無重複元素。 示例 1: 輸入: [1,3,

原创 經典算法迴文數問題————leetcode第9題詳解

迴文數是一個經典老題了,這個概念在我小學數學奧賽時就已經接觸過了,現在是和編程結合起來,變得更加有意思。(以下來自leetcode第9題) 判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。

原创 雙指針的應用————從leetcode第88題說起

雙指針一直是leetcode中的一個有意思的點,刷了一些題見了很多次雙指針,合理運用雙指針可以達到一個巧奪天工的作用,廢話不多說,請看題: 出自leetcode第88題: 給你兩個有序整數數組 nums1 和 nums2,請你將

原创 關於溢出問題————從leetcode第7題說起

廢話少說,直接上題: 給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。 示例 1: 輸入: 123 輸出: 321 示例 2: 輸入: -123 輸出: -321 示例 3: 輸入: 120 輸出: 21

原创 棧的實際應用————從leetcode第20題說起

讓我們先來看這樣一道題: 給定一個只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判斷字符串是否有效。 有效字符串需滿足: 左括號必須用相同類型的右括號閉合。 左括號必須以正確的順序閉合。 注意空字符串可被認爲是

原创 一個簡單的分頁功能的實現(.net開發 數據庫使用EF 語句linq)

做了一個簡單的分頁功能,入門15天小白,大佬勿噴。分頁主要是根據當前頁面去數據庫裏取當前頁面要展示的幾條內容,當然,你也可以全部取出來,那就只是一個“假分頁”,要多少取多少是分頁的精髓所在,這極大的減輕了數據庫的壓力,並且前端更加

原创 最長公共前綴問題————leetcode第14題詳解

請看下題,題目來源自leetcode第14題: 編寫一個函數來查找字符串數組中的最長公共前綴。 如果不存在公共前綴,返回空字符串 “”。 示例 1: 輸入: [“flower”,“flow”,“flight”] 輸出: “fl”