46.全排列
给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。
var permute = function(nums) {
let arr = [];
let res = [];
function backtracking(nums, nums_len, used){
// used是一个布尔数组,用来标记哪些数字已经被使用
if(arr.length === nums_len){
// 此时找到了一个完整的排列,push到res中
res.push(Array.from(arr));
return;
}
for(let i = 0; i < nums_len; i++){
// 如果used[i]为true,表示数字 nums[i] 已经被使用,跳过当前循环
if(used[i]) continue;
// 将nums[i]添加到arr中,并将used[i]设为true
arr.push(nums[i]);
used[i] = true;
// 递归
backtracking(nums, nums_len, used);
arr.pop();
used[i] = false;
}
}
backtracking(nums, nums.length, []);
return res;
};
去除字符串中重复字符
function removeDuplicates(s) {
let result = '';
for (let char of s) {
if (result.indexOf(char) === -1) {
result += char;
}
}
return result;
}
// 测试示例
const str1 = 'aabbcc';
const str2 = '哈 哈 还好 哈哈哈';
console.log(removeDuplicates(str1)); // 输出: 'abc'
console.log(removeDuplicates(str2)); // 输出: '哈 还好'