原创 Java數組和字符串的長度計算

相信這是一個很多人都踩過的坑。在Java中,獲取數組的長度是利用數組的屬性length。而字符串的長度則是字符串對象中的一個獲取大小的函數length(),要牢記這兩個區別,以免踩坑。

原创 篩選法查找100以內的素數

所謂篩選法,是指從小到大篩去一個已知素數的所有倍數。(這是我第一次聽說篩選法) 例如: 根據2,我們可以篩去4,6,8,...,98,100等 根據3,我們可以篩去9,15,...,99等(6和12已經被篩去) 根據5,...... pa

原创 8. String to Integer (atoi)

    字符換轉化爲整形:這道題在leetcode上歸爲easy,其實並不easy,就是在考察一個人考慮問題的全面性,我提交了很多次才通過,都是因爲考慮不全,導致部分測試用例無法通過。 這道題題目描述很簡單,就是字符串轉化爲整形,但是

原创 MyBatis開發環境搭建

大三的時候簡單學習了SSH框架,現在忘得差不多了,本來想再學習一遍的,到網上搜了搜,發現時過兩年,我完全out了,好像最近有個什麼SSM框架,spring+springmvc+mabatis,懷着好奇的心理,想學學這些新的知識,先從底層數

原创 7. Reverse Integer

 整數翻轉,大概情況如圖所示。    以前也做過這樣的題,只不過沒有考慮翻轉之後溢出的情況,我的解法如下,其實跟以前的實現並沒有什麼區別,只是在每次res改變之前判斷一下它是否已經超過了最大值和最小值除以10的值,如果已經超過,那麼re

原创 Java List容器中與equals()方法相關的那些方法

在Java的容器類List的一些方法中,方法的執行是根據equals()方法的行爲而有所不同,這些方法目前我遇到的有: contains()方法remove()方法indexOf()方法retainAll()方法removeAll()方

原创 利用keras破解captcha驗證碼

本文參考了知乎上的一篇文章,只做了少許改動,感覺挺好玩的,自己實現了一下,準確率比原作者的要高一些。如果想要了解原創文章的話,請移步知乎:使用深度學習來破解captcha驗證碼 本文通過keras深度學習框架來實現captcha驗證碼的

原创 67. Add Binary

二進制字符串相加:給定兩個二進制字符串,返回他們的和。 這道題的解法比較簡單,將兩個二進制字符串右對齊,然後逐元素相加就可以了,同時設置一個進位變量。時間複雜度爲O(n)(n爲兩個字符串長度中的較大者)。

原创 28. Implement strStr()

子串查找問題:在haystack中查找needle第一次出現的索引,如果needle不是haystack的一部分,則返回-1 子串匹配問題在數據結構(C語言版)(嚴蔚敏、吳偉民)這本書裏面已經講得很詳細了,包括暴力求解法、KMP算法、

原创 1. Two Sum

  兩數之和的第一個版本:給定一個整形數組和一個整數target,如果在數組中存在兩個元素之和爲target,則返回這兩個元素的下標。   1.暴力求解法(brute force)   我的第一個思路當然是暴力求解法(brute for

原创 653. Two Sum IV - Input is a BST

兩數之和的第四個版本:輸入是一顆二叉查找樹。 首先講一下我的解法: 二叉查找樹的一個重要特點是其中序遍歷的結果是一個有序數組。我們可以很好的利用該性質:首先得到BST的中序遍歷結果,然後採用167. Two Sum II - Input

原创 66. Plus One

大數加1:給定一個數組表示的非負整數,最高位在數組的前面,對這個整數加1. 這道題最直觀的解法是逆向遍歷數組,同時處理進位,如果最後一位仍然有進位,則直接在數組的最前面插入1.時間複雜度爲O(n),空間複雜度爲O(1)。 但是這道題可

原创 226. Invert Binary Tree

二叉樹倒置:總的來說就是交換二叉樹的左右孩子,使得交換前後的兩棵樹是鏡像對稱的。 關於樹的問題用遞歸的思想來做肯定是沒有問題的,我第一個解法也就是遞歸的方法,這裏我就不再介紹我的解法了,我們看一下leetcode上給出的詳細介紹。

原创 461. Hamming Distance

漢明距離:兩個整數中對應的字節不同的個數。 這裏我介紹一下自己的兩種解法。 第一種解法是先對x和y做異或^運算,然後對結果中1的個數進行計數。 第二種解法是直接比較x和y中不同字節的個數。

原创 26. Remove Duplicates from Sorted Array

數組中重複元素的移除:要求空間複雜度是常量級的 我的第一個想法還是跟 27. Remove Element裏面的第一個相同,遇到重複的就移動數組,把前面的重複值覆蓋了,但是這樣的時間複雜度比較大O(n2) 提交結果果然不盡人意 這時