https://leetcode.com/problems/count-and-say/description/

My GitHub: Count And Say

**The***n*^{th}level result is from counting each digit of the result of (*n-1)*^{th}level.

Skip to content
#
JAVA

# Count and Say

# String to Integer (atoi)

# Using StringBuffer solve Reverse Integer problem

# leetcode- Rotate Image

# leetcode- Valid Sudoku

# LeetCode – Plus One

# LeetCode- TWO SUM

# LeetCode – Two Sum II

# Implement Queue using Stacks

https://leetcode.com/problems/count-and-say/description/

My GitHub: Count And Say

**The***n*^{th}level result is from counting each digit of the result of (*n-1)*^{th}level.

https://leetcode.com/problems/string-to-integer-atoi/description/

github:

Checking point:

- null or empty string
- white spaces
- +/- sign
- calculate real value
- handle min & max

LeetCode: https://leetcode.com/problems/reverse-integer/description/

The below Solution 1 is the most popular solution we can find online.

But here is another way (Solution 2) to solve the problem with StringBuffer.

The Solution 2 is easier to understand and the code is cleaner.

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

Giveninput matrix= [1,2,3], [4,5,6], [7,8,9] rotate the input matrixin-placesuch 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**

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

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};

Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0,1].

Use a loop instead of two loops.

Given an array of integers that is already ** sorted in ascending order**, find two numbers such that they add up to a specific target number.

**CheckPoint:** if (numbers != null && numbers.length > 1) {throw new IllegalArgumentException(“No solution!”);}

*github: ImplementQueueusingStacks.java*

Using 2 stacks- s1 and s2 to implement a queue.

**Purpose: keep the input on the bottom of s1**

Continue reading