This commit is contained in:
ls 2025-10-27 20:15:18 +08:00
parent 10de7e7ec1
commit 36827f0837
4 changed files with 37 additions and 39 deletions

View File

@ -1,17 +0,0 @@
public class StringReverse {
// 字符串反转 数组双指针解法
// String无法直接操作内部的char数组避免不了2倍内存开销
public static void main(String[] args) {
String str = "1234567";
char[] chars = str.toCharArray();
int len = chars.length;
char x, y;
for (int index = 0, mid = len >> 1, end = len - 1; index < mid; index++, end--) {
x = chars[index];
y = chars[end];
chars[index] = y;
chars[end] = x;
}
System.out.println(new String(chars));
}
}

View File

@ -1,21 +0,0 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ArrayReverse {
// ArrayList 反转元素
// 双指针解法
// 出自 java.util.Collections#reverse
public static void main(String[] args) {
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7));
int size = list.size();
Integer x, y;
for (int begin = 0, mid = size >> 1, end = size - 1; begin < mid; begin++, end--) {
x = list.get(begin);
y = list.get(end);
list.set(begin, y);
list.set(end, x);
}
System.out.println(list);
}
}

View File

@ -27,7 +27,7 @@ public class InOrderTraversal {
TreeNode right;
TreeNode(int x) {
val = x;
this.val = x;
}
}

36
ReverseElements.java Normal file
View File

@ -0,0 +1,36 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ReverseElements {
// 双指针 ArrayList 反转元素 出自 java.util.Collections#reverse
public static void array() {
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7));
int size = list.size();
Integer x, y;
for (int begin = 0, mid = size >> 1, end = size - 1; begin < mid; begin++, end--) {
x = list.get(begin);
y = list.get(end);
list.set(begin, y);
list.set(end, x);
}
System.out.println(list);
}
// 双指针反转字符串 String无法直接操作内部的char数组 避免不了2倍内存开销
public static void main(String[] args) {
String str = "1234567";
char[] chars = str.toCharArray();
int len = chars.length;
char x, y;
for (int index = 0, mid = len >> 1, end = len - 1; index < mid; index++, end--) {
x = chars[index];
y = chars[end];
chars[index] = y;
chars[end] = x;
}
System.out.println(new String(chars));
}
}