leetcode- Rotate Image

Leetcode: https://leetcode.com/problems/rotate-image/description/

Given input matrix = 
  [1,2,3],
  [4,5,6],
  [7,8,9]

rotate the input matrix in-place such that it becomes:
  [7,4,1],
  [8,5,2],
  [9,6,3]
  • (x, y), the affected point is
    (y, n – x – 1), (n – x – 1, n – y – 1), (n – y – 1, x),  “n” is the size of the matrix.
    The rotate function=
    (x, y) -> (y, n – x – 1) -> (n – x – 1, n – y – 1) -> (n – y – 1, x) -> (x, y).
  • For the i th line, we start from (i, i) ( !! in for loop  j = i ) , and ends at (i, n – 2 – i) 
  • We only need process half of them. n/2

Continue reading

leetcode- Valid Sudoku

https://leetcode.com/problems/valid-sudoku/description/
In a 9 * 9 matrix, check if each numbers (0-9) doesn’t repeat in each row, col and 3 * 3 matrix.

  • use a HashSet or array to check if the number is used.
  • check 3*3 squart –> board [ i + k/3 ][ j + k%3 ] (i, j are 9*9 board index, k is the check board (0-9) index)
  • if(digit > 9 || digit < 1 || check[digit -1]), check digit is valid first then check if the number is used

Continue reading

LeetCode – Plus One

Given a non-negative integer represented as a non-empty array of digits, plus one to the integer. You may assume the integer do not contain any leading zero, except the number 0 itself. The digits are stored such that the most significant digit is at the head of the list.

For example:
Q1.
int[] nums = {1,2,3,4};
int[] result = plusOne(nums);
the digits are in the result array are {1,2,3,5};

Continue reading