Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 8cf8433

Browse files
committed
feat: add leetcode question #462
1 parent ece3041 commit 8cf8433

File tree

2 files changed

+101
-0
lines changed

2 files changed

+101
-0
lines changed
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
package com.hi.dhl.algorithms.leetcode._462.java;
2+
3+
import java.util.Arrays;
4+
5+
/**
6+
* <pre>
7+
* author: dhl
8+
* date : 2022年10月23日
9+
* desc :
10+
* </pre>
11+
*/
12+
class Solution {
13+
14+
// 方法一
15+
public int minMoves3(int[] nums) {
16+
Arrays.sort(nums);
17+
int len = nums.length;
18+
int midNum = nums[len / 2];
19+
int sum = 0;
20+
for (int i = 0; i < len; i++) {
21+
sum += Math.abs(midNum - nums[i]);
22+
}
23+
return sum;
24+
}
25+
26+
// 方法二
27+
public int minMoves2(int[] nums) {
28+
int midNum = findMindNum(nums, 0, nums.length - 1, nums.length / 2);
29+
int sum = 0;
30+
for (int num : nums) {
31+
sum += Math.abs(midNum - num);
32+
}
33+
return sum;
34+
}
35+
36+
int findMindNum(int[] nums, int lo, int hi, int k) {
37+
if (lo >= hi) {
38+
return nums[lo];
39+
}
40+
int mid = quickSort(nums, lo, hi);
41+
if (mid == k) {
42+
return nums[mid];
43+
} else if (mid < k) {
44+
return findMindNum(nums, mid + 1, hi, k);
45+
} else {
46+
return findMindNum(nums, lo, mid - 1, k);
47+
}
48+
}
49+
50+
int quickSort(int[] nums, int lo, int hi) {
51+
int left = lo;
52+
int right = hi;
53+
int k = nums[lo];
54+
while (left < right) {
55+
while (left < right && nums[right] >= k) {
56+
right--;
57+
}
58+
while (left < right && nums[left] <= k) {
59+
left++;
60+
}
61+
swap(nums, left, right);
62+
}
63+
swap(nums, lo, left);
64+
return left;
65+
}
66+
67+
void swap(int[] nums, int lo, int hi) {
68+
int temp = nums[lo];
69+
nums[lo] = nums[hi];
70+
nums[hi] = temp;
71+
}
72+
73+
74+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.hi.dhl.algorithms.leetcode._541.java;
2+
3+
/**
4+
* <pre>
5+
* author: dhl
6+
* date : 2022年10月22日
7+
* desc :
8+
* </pre>
9+
*/
10+
class Solution {
11+
public String reverseStr(String s, int k) {
12+
char[] chars = s.toCharArray();
13+
int len = chars.length;
14+
for (int i = 0; i < len; i += 2 * k) {
15+
int l = i;
16+
int r = Math.min(i + k - 1, len - 1);
17+
while (l < r) {
18+
char tmp = chars[l];
19+
chars[l] = chars[r];
20+
chars[r] = tmp;
21+
l++;
22+
r--;
23+
}
24+
}
25+
return new String(chars);
26+
}
27+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /