注:大佬解答来自LetCode官方题解
-
- var removeDuplicates = function (nums) {
- let res = [];
-
- for (let index = 0; index < nums.length; index++) {
- let num = 0;
- if (res.includes(nums[index])) {
- for (let i = 0; i < res.length; i++) {
- if (res[i] == nums[index]) {
- num++;
- }
- }
- if (num < 2) {
- res.push(nums[index]);
- }
- //得到num的次数
- if (num > 2) {
- return;
- }
- } else {
- res.push(nums[index]);
- }
- }
-
-
- nums.length=res.length
-
- for (let index = 0; index < res.length; index++) {
- nums[index]=res[index]
- }
-
- };
- var removeDuplicates = function(nums) {
- const n = nums.length;
- if (n <= 2) {
- return n;
- }
- let slow = 2, fast = 2;
- while (fast < n) {
- if (nums[slow - 2] != nums[fast]) {
- nums[slow] = nums[fast];
- ++slow;
- }
- ++fast;
- }
- return slow;
- };
- var majorityElement = function (nums) {
- let result = 0;
-
- const res = Array.from(new Set([...nums]));
- res.forEach((item_nums) => {
- let n = nums.length / 2;
- nums.forEach((item_res) => {
- if (item_nums == item_res) {
- n = n - 1;
- }
- });
-
- if (n < 0) {
- result = item_nums;
- }
- });
- return result;
- };
没解答
- var rotate = function (nums, k) {
- for (let index = 0; index < k; index++) {
- nums.unshift(nums[nums.length - 1]);
- nums.pop();
- }
- };
- var rotate = function(nums, k) {
- const n = nums.length;
- const newArr = new Array(n);
- for (let i = 0; i < n; ++i) {
- newArr[(i + k) % n] = nums[i];
- }
- for (let i = 0; i < n; ++i) {
- nums[i] = newArr[i];
- }
- };
-
- const reverse = (nums, start, end) => {
- while (start < end) {
- const temp = nums[start];
- nums[start] = nums[end];
- nums[end] = temp;
- start += 1;
- end -= 1;
- }
- }
-
- var rotate = function(nums, k) {
- k %= nums.length;
- reverse(nums, 0, nums.length - 1);
- reverse(nums, 0, k - 1);
- reverse(nums, k, nums.length - 1);
- };
-