【剑指Offer】

链表

技巧

剑指 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();
    }
}
posted @ 2020-11-27 18:00  BWSHOOTER  阅读(79)  评论(0)    收藏  举报