Merge pull request #428 from flames519/master

add 0736 go版本
This commit is contained in:
程序员Carl
2021-06-23 09:41:25 +08:00
committed by GitHub
2 changed files with 49 additions and 18 deletions

View File

@ -244,31 +244,35 @@ func backtrack(nums,pathNums []int,used []bool){
} }
} }
```
Javascript: Javascript:
```javascript ```js
/**
* @param {number[]} nums
* @return {number[][]}
*/
var permute = function(nums) { var permute = function(nums) {
let result = [] const res = [], path = [];
let path = [] backtracking(nums, nums.length, []);
function backtracing(used) { return res;
if(path.length === nums.length) {
result.push(path.slice(0)) function backtracking(n, k, used) {
return if(path.length === k) {
res.push(Array.from(path));
return;
} }
for(let i = 0; i < nums.length; i++) { for (let i = 0; i < k; i++ ) {
if(used[nums[i]]) { if(used[i]) continue;
continue path.push(n[i]);
} used[i] = true; // 同支
used[nums[i]] = true backtracking(n, k, used);
path.push(nums[i]) path.pop();
backtracing(used) used[i] = false;
path.pop()
used[nums[i]] = false
} }
} }
backtracing([])
return result
}; };
``` ```

View File

@ -128,6 +128,33 @@ class Solution:
Go Go
```go
func partitionLabels(s string) []int {
var res []int;
var marks [26]int;
size, left, right := len(s), 0, 0;
for i := 0; i < size; i++ {
marks[s[i] - 'a'] = i;
}
for i := 0; i < size; i++ {
right = max(right, marks[s[i] - 'a']);
if i == right {
res = append(res, right - left + 1);
left = i + 1;
}
}
return res;
}
func max(a, b int) int {
if a < b {
a = b;
}
return a;
}
```
Javascript: Javascript:
```Javascript ```Javascript
var partitionLabels = function(s) { var partitionLabels = function(s) {