• leetcode每日刷题计划-简单篇day4


    腰酸腿疼肝数模

    被教育说代码风格像是小学生而且有点冗余

    QAQ之前面试官好像也说过orz努力改努力改

    今天把前两天跳过的vector给简单看了一下补上了

    Num 14 最长公共前缀 Longest Common Prefix

    string在处理过程中有几个问题

    第一string是const指针对应的

    第二min函数比较要求类型完全相同(a,s.length())这种不能直接比较,要(a,(int)s.length())

    另外需要注意的是,一个一个加字符最后加''在数据比较大会出现stack-buffer-overflow,默认分配并没有那么多,相邻内存可能是被占用的、

    https://blog.csdn.net/cny901111/article/details/7771668

    可以使用substr,但这个需要头文件string

    也可以string g(s,0,len)

    s是被复制的字符串,0代表起始位置,len代表长度(是长度不是最后一个下标哦!)

    还有注意修改过程中len=min(len,s1.length())

    不然的话s1不够长可能会溢出

    class Solution {
    public:
        string longestCommonPrefix(vector<string>& strs) {
            int num=strs.capacity();
            if(num==0) return "";
            if(num==1) return strs.at(0);
            string s=strs.at(0);
            int len=s.length();
            for(int i=1;i<num;i++)
            {
                string s1=strs.at(i);
                len=min(len,(int)s1.length());
                for(int j=0;j<min(len,(int)s1.length());j++)
                {
                    if(s[j]!=s1[j])
                    {
                        len=j;
                        break;
                    }
                }
            }
            string g(s,0,len);
            return g;
        }
    };
    View Code

    Num 26 删除排序数组中的重复项 Remove Duplicates from Sorted Array

    边写边想O(1),比自己暴力搬动确实要好一些的,反复提示后面不用管,那么在len修改的过程中直接把数字带过去就好了

    vector a 里面元素个数 a.capacity()

    可以想象成数组,直接a[i],也可以用a.at(i)

    注意一下呀这个有可能是空的,学会考虑边界条件 a.empty(),判断是否为空

    class Solution {
    public:
        int removeDuplicates(vector<int>& nums) {
            if(nums.empty()) return 0;
            int now=nums[0];
            int len=1;
            for(int i=1;i<nums.capacity();i++)
            {
                if(nums[i]>now)
                {
                    now=nums[i];
                    nums[len++]=now;
                }
            }
            return len;
        }
    };
    View Code
    时间才能证明一切,选好了就尽力去做吧!
  • 相关阅读:
    Ubuntu中安装PyCharm2019并破解
    Spark RDD----pyspark第四次作业
    关于“xxx”object is not callable的异常
    sudo: 在加载插件“sudoers_policy”时在 /etc/sudo.conf 第 0 行出错 sudo: /usr/lib/sudo/sudoers.so 必须只对其所有者可写 sudo: 致命错误,无法加载插件
    Hash函数
    数字签名---RSA算法
    中级实训Android学习记录——Activity、Fragment
    中级实训Android学习记录——自定义Dialog、PopupWindow
    中级实训Android学习记录——Toast、AlertDialog、ProgressBar
    unity 3d 七、模型与动画
  • 原文地址:https://www.cnblogs.com/tingxilin/p/10703536.html
Copyright © 2020-2023  润新知