# Sword finger offer plan 16 (simple sorting) — Java

Time：2021-11-28

## 1.1 topic 1

Sword finger offer 45. Arrange the array into the smallest number

## 1.2 solution

Looking at the solution of this problem, I found myself thinking wrong.
Let’s take the big man’s solution directly here.
At the beginning, create an array of strings to store the int array
String.valueof converts int to string and stores it in the array.
It should be sorted here. Lambda expression is used in the problem solution to judge whether x + y is greater than y + X
Then add Jin StringBuilder and turn it into a string to return.

## 1.3 code

``````class Solution {
public String minNumber(int[] nums) {
String[] strs = new String[nums.length];
for(int i = 0; i < nums.length; i++)
strs[i] = String.valueOf(nums[i]);
Arrays.sort(strs, (x, y) -> (x + y).compareTo(y + x));
StringBuilder res = new StringBuilder();
for(String s : strs)
res.append(s);
return res.toString();
}
}``````

## 2.1 topic 2

Sword finger offer 61. Shunzi in playing cards

## 2.2 solution

This is by judging whether the maximum minus the minimum of the five values is less than 5,
The hash table is used to determine whether there are duplicates. If there are duplicate values, they are not CIS children.
You can also sort the array first and then compare the maximum value with the minimum value except zero after sorting.

## 2.3 code

``````class Solution {
public boolean isStraight(int[] nums) {
Set s = new HashSet();
int max=0,min=14;
for(int i=0;i``````

## On the mutation mechanism of Clickhouse (with source code analysis)

Recently studied a bit of CH code.I found an interesting word, mutation.The word Google has the meaning of mutation, but more relevant articles translate this as “revision”. The previous article analyzed background_ pool_ Size parameter.This parameter is related to the background asynchronous worker pool merge.The asynchronous merge and mutation work in Clickhouse kernel is completed […]