原创 異或運算進行整數交換的陷阱

大家都知道,可以使用異或運算在不使用額外內存的情況下,進行兩個整數的交換。 void swap(int &x, int &y){ x^=y; y^=x; x^=y; } 但是,當x==y時,這樣交換有個致命的缺陷

原创 Largest Number|leetcode,使用stl sort函數排序,排序後容器的內容被改變,嘗試各種辦法沒有找出bug,奇葩!!!!

今天做leetcode中的Largest Number,程序所出的異常,簡直讓我抓狂,是我程序的bug,還是stl sort的bug啊,不知道有什麼好方法,可以確定程序中的問題。 #include<iostream> #include<

原创 Reorder List|leetcode題解

此題思路比較簡單,分爲三步: 1.利用快慢指針,將鏈表從中間斷開。 2.翻轉右半部分鏈表 3.將兩個鏈表合併 首先,是我提交的第一個版本,耗時880mm,非常的慢 ListNode *reverseList(ListNode *head)

原创 Dungeon Game | leetcode 解題思路

此題可以使用動態規劃的方法求解,關鍵在於如何定義問題的狀態。此題的狀態可以這樣定義,dp[i][j]代表從格子[i][j]到終點(公主所在位置)所需要的最小健康值,那麼遞推方程可以定義爲dp[i][j]=max{min{dp[i+1][j

原创 Decode Ways|leetcode題解

此題使用動態規劃的方法解答,很容易得出遞歸方程。 int numDecodings(string s) { int n=s.size(); if(0==n||(1==n&&'0'!=s[0]))retur

原创 銀行卡驗證

現行 16 位銀聯卡現行卡號開頭 6 位是 622126~622925 之間的,7 到 15 位是銀行自定義的,可能是髮卡分行,髮卡網點,髮卡序號,第 16 位是校驗碼。16 位卡號校驗位採用 Luhm 校驗方法計算:1,將未帶校驗位的 

原创 信用卡卡號

VISA卡 第1--6位:(453242)爲VISA國際組織指定的代碼,表示建設銀行行的VISA卡             第7--9位:(010--034)爲總行規定的地區信用卡髮卡行的區間號,超出此區間的爲異地卡         

原创 what is the difference between _source and _all in Elasticsearch

It's pretty much the same as the difference between indexed fields and stored fields in lucene. You use indexed field

原创 Interleaving String|leetcode題解

這道題,我使用的是動態規劃方法,對於字符串s2="dbbca",s1="aabcc",s3="aadbbcbcac"。設dp[i][j]代表s1[1..i]和s2[1...j]是否爲s3[1...i+j]的交錯串,則我們可以得出遞歸方程爲

原创 Hadoop初始LiveNode個數爲0

現象: 1.使用bin/hdfs dfs -put命令無法將本地文件拷貝到HDFS中 2.使用jps命令發現,沒有DataNode服務在運行 3.使用localhost:50070發現活節點爲0 解決方法: 1.停止hadoop服務 2

原创 銀行卡號編碼規則

我們時常時常會遇到各種借記卡(儲蓄卡)和貸記卡(信用卡)。銀行卡號那麼長一截,其實就像身份證一樣,這裏面也有一些規則。其實我們的銀行卡號一般是16位或者19位。由如下三部分構成。●前六位是:發行者標識代碼 Issuer Identific

原创 IP和域名正則表達式

IP地址的正則表達式 關鍵字:IP地址 正則表達式 作者:txw1958 出處:http://www.cnblogs.com/txw1958/archive/2011/10/13/ip_address_regular_expre

原创 Maximum Gap|leetcode題解

這道題可以使用桶排序的方法和基數排序的方法,對這兩個方法不瞭解的可以參考算法導論。 這兩個排序算法都可以在線性時間內對在一定範圍內的數據進行排序,是能夠解這道題的理論基礎。 是有桶排序的思路是: 首先,對數據進行根據桶進行劃分。 然後,統

原创 Path SumII|leetcode題解

這題使用樹的先序遍歷,同時存儲路徑就可以解決。 void preOrder(vector<vector<int> >&paths,TreeNode *root, int sum, vector<int>&path,int leve

原创 Word Ladder|leetcode題解

這道題很容易想到使用廣度優先搜索的方式,從起始單詞start搜索到結束單詞end,中間產生狀態的產生有兩種,一種是通過改變單詞的一個字母並其是否在字典中來產生新的狀態;另一種是通過以距離爲1藉助字典構建單詞間的鄰接關係。第二種狀態產生的方