代码随想录DAY62

这个移动0的问题还是比较重要的 因为涉及到一种思想:快慢指针!

class Solution {

public:

void moveZeroes(vector<int>& nums) {

int slow=0,fast=0;

for(;fast<nums.size();fast++){

if(nums[fast]!=0){

swap(nums[slow],nums[fast]);

slow++;

}

}

for(;slow<nums.size();slow++){

nums[slow]=0;

}

}

};

class Solution {

public:

void rotate(vector<int>& nums, int k) {

int i=0,j=(k%(nums.size())-1);

if(k==0)

return;

reverse(nums.begin(),nums.end());

reverse(nums.begin(),nums.begin()+j+1);

reverse(nums.begin()+j+1,nums.end());

}

};

第二题 主要是左旋和右旋的问题 还是要搞清楚!右旋是先反转整个字符串

class Solution {

public:

int pivotIndex(vector<int>& nums) {

int sum=0;

int leftsum=0;

int rightsum=0;

for(int i=0;i<nums.size();i++){

sum+=nums[i];

}

for(int i=0;i<nums.size();i++){

rightsum=sum-leftsum-nums[i];

if(leftsum==rightsum){

return i;

}

leftsum+=nums[i];

}

return -1;

}

};

!!! 注意注意注意 不排序不能比较数值 !!!!

相关推荐
xlq2232214 分钟前
29.哈希(下)
算法·哈希算法·散列表
阿昭L14 分钟前
leetcode链表是否有环
算法·leetcode·链表
yaoh.wang23 分钟前
力扣(LeetCode) 83: 删除排序链表中的重复元素 - 解法思路
程序人生·算法·leetcode·链表·面试·职场和发展
阿昭L28 分钟前
leetcode旋转链表
算法·leetcode·链表
山楂树の28 分钟前
有效的括号(栈)
数据结构·算法
im_AMBER29 分钟前
Leetcode 81 【滑动窗口(定长)】
数据结构·笔记·学习·算法·leetcode
xu_yule33 分钟前
算法基础(背包问题)-完全背包
c++·算法·动态规划·完全背包
x9766636 分钟前
使用 HMAC-SHA256算法对MCU UID进行加密
单片机·嵌入式硬件·算法
gfdhy37 分钟前
【c++】素数详解:概念、定义及高效实现(判断方法 + 筛法)
开发语言·c++·算法·数学建模·ai编程
Swift社区41 分钟前
LeetCode 452 - 用最少数量的箭引爆气球
算法·leetcode·职场和发展