題目描述
把只包含質因子2、3和5的數稱作醜數(ugly number)。例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。
維護三個佇列,選擇三個佇列頭最小的數加入醜數陣列,同時將該最小的數乘以2,3,5放入三個佇列;
public
intgetuglynumber_solution
(int index)
arraylist
res =
newarraylist()
; res.
add(1)
;int i2 =0;
int i3 =0;
int i5 =0;
while
(res.
size()
!= index)
if(min == m3)
if(min == m5)
}return res.
get(res.
size()
-1);
}
題目描述
在乙個字串(0<=字串長度<=10000,全部由字母組成)中找到第乙個只出現一次的字元,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫)
用乙個帶有插入順序的雜湊表 我們選用底層是鍊錶的linkedhashmap裡面的key就是str裡面的字元 value就是字元出現的次數
第二次遍歷 該雜湊表,判斷第乙個value是不是1 是的話直接返回下表
public
static
intfirstnotrepeatingchar
(string str)
else}if
(map.
size()
<=0)
return-1
;for
(int i =
0; i < str.
length()
;i++)}
return-1
;}
題目描述
在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數p。並將p對1000000007取模的結果輸出。 即輸出p%1000000007
輸入描述:
題目保證輸入的陣列中沒有的相同的數字
資料範圍:
對於%50的資料,size<=10^4
對於%75的資料,size<=10^5
對於%100的資料,size<=2*10^5
利用歸併排序的思想
public
int count =0;
public
intinversepairs
(int
array)
process
(array,
0, array.length -1)
;return
this
.count;
}private
void
process
(int
array,
int l,
int r)
int mid = l +
((r - l)
>>1)
;process
(array, l, mid)
;process
(array, mid +
1, r)
;merge
(array, l, mid, r);}
private
void
merge
(int
array,
int l,
int mid,
int r)
while
(p1<= mid)
while
(p2 <= r)
for(
int j =
0;j < help.length;j++
)}
題目描述
輸入兩個鍊錶,找出它們的第乙個公共結點。(注意因為傳入資料是鍊錶,所以錯誤測試資料的提示是用其他方式顯示的,保證傳入資料是正確的)
先看長度 然後 從頭開始走
public listnode findfirstcommonnode
(listnode phead1, listnode phead2)
listnode cur1 = phead1;
listnode cur2 = phead2;
int len1 =
getlength
(cur1)
;int len2 =
getlength
(cur2)
;int i =0;
if(len1 >= len2)
}else
if(len1 < len2)
}while
(cur1 != cur2)
return cur1;
}private
intgetlength
(listnode l1)
return len;
}
劍指offer 之 時間效率
30.最小的k個數 31.連續子陣列的最大和 32.從1到n整數中1出現的次數 33.把陣列排成最小的數 題目描述 陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列。由於數字2在陣列 現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。維護乙個計數器...
劍指offer 演算法 (時間空間效率的平衡)
題目描述 把只包含因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。解析 根據醜數的定義,醜數應該是另乙個醜數乘以2 3或者5的結果 1除外 因此我們可以建立乙個陣列,裡面的數字是排好...
劍指offer 優化時間與空間效率
把只包含因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。coding utf 8 class solution def getuglynumber solution self,ind...