mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 08:50:15 +08:00
@ -99,6 +99,24 @@ public:
|
||||
## Java
|
||||
|
||||
```java
|
||||
class Solution {
|
||||
public void nextPermutation(int[] nums) {
|
||||
for (int i = nums.length - 1; i >= 0; i--) {
|
||||
for (int j = nums.length - 1; j > i; j--) {
|
||||
if (nums[j] > nums[i]) {
|
||||
// 交换
|
||||
int temp = nums[i];
|
||||
nums[i] = nums[j];
|
||||
nums[j] = temp;
|
||||
// [i + 1, nums.length) 内元素升序排序
|
||||
Arrays.sort(nums, i + 1, nums.length);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
Arrays.sort(nums); // 不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Python
|
||||
|
@ -68,6 +68,25 @@ public:
|
||||
## Java
|
||||
|
||||
```java
|
||||
class Solution {
|
||||
public boolean isIsomorphic(String s, String t) {
|
||||
Map<Character, Character> map1 = new HashMap<>();
|
||||
Map<Character, Character> map2 = new HashMap<>();
|
||||
for (int i = 0, j = 0; i < s.length(); i++, j++) {
|
||||
if (!map1.containsKey(s.charAt(i))) {
|
||||
map1.put(s.charAt(i), t.charAt(j)); // map1保存 s[i] 到 t[j]的映射
|
||||
}
|
||||
if (!map2.containsKey(t.charAt(j))) {
|
||||
map2.put(t.charAt(j), s.charAt(i)); // map2保存 t[j] 到 s[i]的映射
|
||||
}
|
||||
// 无法映射,返回 false
|
||||
if (map1.get(s.charAt(i)) != t.charAt(j) || map2.get(t.charAt(j)) != s.charAt(i)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Python
|
||||
|
@ -67,6 +67,24 @@ public:
|
||||
## Java
|
||||
|
||||
```java
|
||||
class Solution {
|
||||
public int pivotIndex(int[] nums) {
|
||||
int sum = 0;
|
||||
for (int i = 0; i < nums.length; i++) {
|
||||
sum += nums[i]; // 总和
|
||||
}
|
||||
int leftSum = 0;
|
||||
int rightSum = 0;
|
||||
for (int i = 0; i < nums.length; i++) {
|
||||
leftSum += nums[i];
|
||||
rightSum = sum - leftSum + nums[i]; // leftSum 里面已经有 nums[i],多减了一次,所以加上
|
||||
if (leftSum == rightSum) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1; // 不存在
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Python
|
||||
@ -90,4 +108,3 @@ public:
|
||||
* 知识星球:[代码随想录](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)
|
||||
<div align="center"><img src=../pics/公众号.png width=450 alt=> </img></div>
|
||||
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。
|
||||
|
||||
注意:如果对空文本输入退格字符,文本继续为空。
|
||||
|
||||
|
||||
示例 1:
|
||||
* 输入:S = "ab#c", T = "ad#c"
|
||||
* 输出:true
|
||||
@ -160,6 +160,32 @@ public:
|
||||
|
||||
Java:
|
||||
|
||||
```java
|
||||
// 普通方法(使用栈的思路)
|
||||
class Solution {
|
||||
public boolean backspaceCompare(String s, String t) {
|
||||
StringBuilder ssb = new StringBuilder(); // 模拟栈
|
||||
StringBuilder tsb = new StringBuilder(); // 模拟栈
|
||||
// 分别处理两个 String
|
||||
for (char c : s.toCharArray()) {
|
||||
if (c != '#') {
|
||||
ssb.append(c); // 模拟入栈
|
||||
} else if (ssb.length() > 0){ // 栈非空才能弹栈
|
||||
ssb.deleteCharAt(ssb.length() - 1); // 模拟弹栈
|
||||
}
|
||||
}
|
||||
for (char c : t.toCharArray()) {
|
||||
if (c != '#') {
|
||||
tsb.append(c); // 模拟入栈
|
||||
} else if (tsb.length() > 0){ // 栈非空才能弹栈
|
||||
tsb.deleteCharAt(tsb.length() - 1); // 模拟弹栈
|
||||
}
|
||||
}
|
||||
return ssb.toString().equals(tsb.toString());
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Python:
|
||||
|
||||
Go:
|
||||
|
@ -120,6 +120,31 @@ public:
|
||||
## Java
|
||||
|
||||
```java
|
||||
// 方法一
|
||||
class Solution {
|
||||
public int[] sortArrayByParityII(int[] nums) {
|
||||
// 分别存放 nums 中的奇数、偶数
|
||||
int len = nums.length;
|
||||
int evenIndex = 0;
|
||||
int oddIndex = 0;
|
||||
int[] even = new int[len / 2];
|
||||
int[] odd = new int[len / 2];
|
||||
for (int i = 0; i < len; i++) {
|
||||
if (nums[i] % 2 == 0) {
|
||||
even[evenIndex++] = nums[i];
|
||||
} else {
|
||||
odd[oddIndex++] = nums[i];
|
||||
}
|
||||
}
|
||||
// 把奇偶数组重新存回 nums
|
||||
int index = 0;
|
||||
for (int i = 0; i < even.length; i++) {
|
||||
nums[index++] = even[i];
|
||||
nums[index++] = odd[i];
|
||||
}
|
||||
return nums;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Python
|
||||
@ -143,4 +168,3 @@ public:
|
||||
* 知识星球:[代码随想录](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)
|
||||
<div align="center"><img src=../pics/公众号.png width=450 alt=> </img></div>
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user