链表
技巧
剑指 Offer 03. 数组中重复的数字
展开代码
class Solution {
public int findRepeatNumber(int[] nums) {
int len = nums.length;
for(int i = 0; i<len; i++){
while(nums[i]!=i){
if(nums[i]<i)
return nums[i];
swap(nums,i,nums[i]);
}
}
return -1;
}
private void swap(int[] nums, int i, int j){
int t = nums[i];
nums[i] = nums[j];
nums[j] = t;
}
}
剑指 Offer 04. 二维数组中的查找
展开代码
class Solution {
public boolean findNumberIn2DArray(int[][] matrix, int target) {
if(matrix==null || matrix.length==0 || matrix[0].length==0)
return false;
int row = matrix.length;
int col = matrix[0].length;
int c = col-1;
int r = 0;
while(c>=0 && r<row){
if(matrix[r][c] < target)
r++;
else if(matrix[r][c] > target)
c--;
else
return true;
}
return false;
}
}
字符串?
剑指 Offer 05. 替换空格
展开代码
class Solution {
public String replaceSpace(String s) {
StringBuilder sb = new StringBuilder();
for(char c : s.toCharArray()){
if(c==' ')
sb.append("%20");
else
sb.append(c);
}
return sb.toString();
}
}