首页 > 其他分享 >学习日记(27、66)

学习日记(27、66)

时间:2022-10-17 13:11:47浏览次数:44  
标签:digits 27 val nums int right 66 日记 left

1、27、移除元素

双指针

int removeElement(int* nums, int numsSize, int val) {
    int left = 0;
    for (int right = 0; right < numsSize; right++) {//设置两个指针,如果r指针元素不等于val,一定是输出数组元素,赋给l,然后l、r右移,如果r元素等于val,不在输出数组里,l不动,r右移
        if (nums[right] != val) {
            nums[left] = nums[right];
            left++;
        }
    }
    return left;
}

双指针优化,只需遍历一遍

int removeElement(int* nums, int numsSize, int val) {
    int left = 0, right = numsSize;
    while (left < right) {
        if (nums[left] == val) {
            nums[left] = nums[right - 1];
            right--;
        } else {
            left++;
        }
    }
    return left;
}

2、加一(c++)

题目简单描述:把数组中的所有数当成一个数,输出这个数字加一后的数组



class Solution {
public:
    vector<int> plusOne(vector<int>& digits) {
        int n=digits.size();
        for(int i=n-1;i>=0;i--){
            if(digits[i]+1==10){
                digits[i]=0;
            }
            else{
                digits[i]=digits[i]+1;
                return digits;//不光是后面数是9变成0,一定要等到前面的数加1之后再输出
            }
        }
        vector<int> ans(n + 1);
        ans[0] = 1;
        return ans;
    }
};

 

 

标签:digits,27,val,nums,int,right,66,日记,left
From: https://www.cnblogs.com/zhishiyigenicheng/p/16798854.html

相关文章

  • 学习日记
    1、26、删除有序数组中的重复项intremoveDuplicates(int*nums,intnumsSize){if(numsSize==0){return0;}intfast=1,slow=1;//fa......
  • 教一年级娃娃写一句话日记
    闺女上一年级,老师要求每天在拼音本上写一两句话,也就是日记的雏形。小娃娃不知道怎么写,总不能写什么今天周五了,很开心,明天周一了,不开心之类的吧。上学的时候应该都学过缩句,扩......
  • 【HDLBits刷题日记】01 Getting Started & Basics
    挺早以前就刷了里面一些题,结果不知道为啥登录账号刷题记录又没了,强迫症又让我不想从中间开始刷。既然如此,那就从头开始刷吧。QWQStepone第一题,没啥好说的。moduletop......
  • 2022-2023-1 20221327刘祖京 《计算机基础与程序设计》第七周学习总结
    作业信息班级链接 https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK07教材学习内容总结阅读《......
  • 1490_TC275_UART_shell例程测试
    前面我已经测试了UART的简单例子,并且还修改了PIN脚通过Arduino来读取了串口信息。这是一个比较简单的监控方式,只需要一个PIN就能够给我提供printf打印功能。而这样的工具对......
  • ARM 笔记(0927)--02
    寄存器编程寄存器编程分为几步第一步--------弄清硬件的连接原理第二步--------用到什么资源是属于内核还是外设第三步--------用到哪些寄存器第四步--------这些寄......
  • 报错解决OSError: /lib64/libm.so.6: version `GLIBC_2.27' not found
    使用pyg报错如下:1Traceback(mostrecentcalllast):2File"main.py",line18,in<module>3frommodels.GDNimportGDN4File"/data/run01/scz04......
  • Exam Results Gym - 102769E
    https://vjudge.net/problem/Gym-102769E#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;typedeflonglongll;......
  • 【区间DP】ABC273F. Hammer 2
    ABC273F.Hammer2Difficulty:2277、关路灯模型区间DP题意略。思路设计dp状态:\(f[l][r][0/1]\)表示走完区间[l,r]最后待在l(0)或r(1)处的最小移动距离总和......
  • 狐漠漠养成日记 Cp.00002 第一周
    主要目标(1)考研考研数学二16-22年的真题卷(已完成真题卷:0/7)记忆考研英语中高频词汇(已记忆词汇:高频:0/10;中频:0/10)考研英语二16-22年的真题卷(已完成真题卷:0/7)整理政治知识......