LeetCode 算法题详解
iEucliwood
一位非科班程序员,正在学习中...
展开
-
LeetCode189.轮转数组
给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2,3,4] 接口函数如下: void rotate(int* nums, int numsSize, int k){ } 方法一:常规方法 时间复杂度O(N*K) 空间复杂度O(1) 即轮转k个位置就是轮转k次,每一次所有元素向前移动一位。完成一次轮转,定义一个变量tmp保存数组中最后一个元素,将其他元原创 2022-05-01 19:28:28 · 270 阅读 · 0 评论 -
LeetCode消失的数字(三种解法详解)
数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗? 函数接口如下 int missingNumber(int* nums, int numsSize){ } 其中nums为指向数组首元素的指针,numsSize为数组大小。 方法一:位运算 利用位运算中的异或,异或的位运算规则是,1^1=0,1^0=1,0^0=0,从这里能看出,异或的运算能找出两个数中不相同的位并标为1,比如两个相同的数它们的位是相同的异或为0,x^x=0,与0异原创 2022-05-01 16:46:59 · 601 阅读 · 0 评论