在乙個長度為 n 的陣列 nums 裡的所有數字都在 0~n-1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。
解題思路:利用hashset去重原理,遍歷新增陣列元素,新增失敗則返回重複元素
**
classsolution
return -1;
}}
在乙個 n * m 的二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個高效的函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。
示例:現有矩陣 matrix 如下:
[[1, 4, 7, 11, 15],
[2, 5, 8, 12, 19],
[3, 6, 9, 16, 22],
[10, 13, 14, 17, 24],
[18, 21, 23, 26, 30]
]給定 target = 5,返回 true。
給定 target = 20,返回 false。
解題思路:通過找出規律從左下角或者右上角可以矩陣類似於二叉搜尋樹(左邊小於根節點右邊大於根節點)
**
classsolution
else
if(matrix[i][j]else
}return
false
; }
}
請實現乙個函式,把字串 s 中的每個空格替換成"%20"。
示例 1:
解題思路:可以用stringbuilder重新拼接字串
classsolution
else
}return
sb.tostring();
}}
輸入乙個鍊錶的頭節點,從尾到頭反過來返回每個節點的值(用陣列返回)。
示例 1:
輸入:head = [1,3,2]解題思路1:反向輸出可以考慮遞迴(借助linkedlist存資料,最後加入陣列)輸出:[2,3,1]
/*** definition for singly-linked list.
* public class listnode
* } */
class
solution
return
res;
}void
rec(listnode head)
}
解題思路2.利用棧的先入後出特性
/*** definition for singly-linked list.
* public class listnode
* } */
class
solution
while(!stack.isempty())
int res= new
int[dic.size()];
for(int i=0;i)
return
res;
}}
classsolution
return rec(0,0,inorder.length-1);
}treenode rec(
int pre_root,int in_left,int in_right)
}
劍指offer刷題
面試題6 從尾到頭列印鍊錶 struct listnode class solution reverse res.begin res.end return res 替換空格class solution int newnumstr numstr numspace 2 if newnumstr leng...
劍指offer刷題
原題鏈結 動態規劃 class solution dp for int i 1 i len1 i else if p j 1 else return dp len1 len2 原題鏈結 數學推導 找規律 class solution else if n 3 2 return ipow 3 numso...
劍指offer刷題 2
思路 如果從前往後進行遍歷,那麼每次找到乙個空格,則需要新增兩個位元組來進行替換,我們採用先對字串進行遍歷,查詢字串中的空格的個數,然後對新的字串進行長度的計算,然後從後往前進行替換,每遇到乙個空字元,然後進行替換。class solution int oldnumber 0 int numbers...