LeetCode-48-旋转图像

本文转载于简书Windmajor

给定一个 n × n 的二维矩阵表示一个图像。
将图像顺时针旋转 90 度。
说明:
你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。
示例 1:

给定 matrix = 
[
  [1,2,3],
  [4,5,6],
  [7,8,9]
],

原地旋转输入矩阵,使其变为:

[
  [7,4,1],
  [8,5,2],
  [9,6,3]
]




阅读全文
none

加一

class Solution {
    public int[] plusOne(int[] digits) {
      if(digits.length==0) return digits;
        int carry=1,n=digits.length;
        for(int i=digits.length-1;i>=0;--i){//从后向前搜索
            if(carry==0) return digits;
            int sum =digits[i]+carry;
            digits[i]=sum%10;//如果进位即sum = 10,digits[i] = 0
            carry=sum/10;
        }
        int[] res = new int[n+1];
        res[0]=1;//极端情况,全是9,第一个数插入1,其余全是零
        return carry==0?digits:res;
    }
}
阅读全文
none

LeetCode - 两个数组的交集 II

解法一:

class Solution {
public int[] intersect(int[] nums1, int[] nums2) {

    Arrays.sort(nums1);
    Arrays.sort(nums2);

    List<Integer> tmp = new ArrayList<>();

    int i = 0;
    int j = 0;
    while (i < nums1.length && j < nums2.length) {
        if (nums2[j] > nums1[i]) {
            i++;
        } else if (nums2[j] < nums1[i]) {
            j++;
        } else {
            tmp.add(nums1[i]);
            i++;
            j++;
        }

阅读全文
none

java如何跳出多层循环

public static void main(String[] args){
        lableB:
        for(int i=0;i<3;i++){
            lableA:
            for(int j=0;j<3;j++){
                System.out.println(j);
                if(j==1){
                    break lableB;
                }
            }
        }        
        System.out.println("over!");
    }
阅读全文
none