腰酸腿疼肝数模

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

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

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

Num 14 最长公共前缀 Longest Common Prefix

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

第一string是const指针对应的

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

另外需要注意的是,一个一个加字符最后加'\0'在数据比较大会出现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==) return "";
if(num==) return strs.at();
string s=strs.at();
int len=s.length();
for(int i=;i<num;i++)
{
string s1=strs.at(i);
len=min(len,(int)s1.length());
for(int j=;j<min(len,(int)s1.length());j++)
{
if(s[j]!=s1[j])
{
len=j;
break;
}
}
}
string g(s,,len);
return g;
}
};

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 ;
int now=nums[];
int len=;
for(int i=;i<nums.capacity();i++)
{
if(nums[i]>now)
{
now=nums[i];
nums[len++]=now;
}
}
return len;
}
};

leetcode每日刷题计划-简单篇day4的更多相关文章

  1. leetcode每日刷题计划-简单篇day5

    刷题成习惯以后感觉挺好的 Num 27 移除元素 Remove Element 跟那个排序去掉相同的一样,len标记然后新的不重复的直接放到len class Solution { public: i ...

  2. leetcode每日刷题计划-简单篇day3

    收到swe提前批面试hhh算是ep挂了的后续 努力刷题呀争取今年冲进去! Num 21 合并两个有序链表 Merge Two Sorted Lists 注意新开的链表用来输出结果的是ListNode ...

  3. leetcode每日刷题计划-简单篇day1

    orzorz开始刷题 争取坚持每周平均下来简单题一天能做两道题吧 非常简单的题奇奇怪怪的错误orz越不做越菜 Num 7 整数反转 Reverse Integer 刚开始多给了一个变量来回折腾占地方, ...

  4. leetcode每日刷题计划-简单篇day12

    Num 125 验证回文串 Valid Palindrome 非常有收货的一道题嘻嘻嘻,本来是考试期间划水挑的题,坑点有点多 第一个是注意对temp1和temp2中途更新的判断 第二个是字符串频繁的作 ...

  5. leetcode每日刷题计划-简单篇day10

    跳题,不熟悉的留到周末再做. 保持冷静,不信画饼. num 100 相同的树 Same Tree 做法可能不是特别简洁,注意一下.最后判断完子树以后,要确定根的数值是一样的 然后在isleaf的判定先 ...

  6. leetcode每日刷题计划-简单篇day9

    Num 38 报数 Count and Say 题意读起来比较费劲..看懂了题还是不难的 注意最后的长度是sz的长度,开始写错写的len 在下次计算的时候len要更新下 说明 直接让char和int进 ...

  7. leetcode每日刷题计划-简单篇day6

    突发奇想&胡思乱想的一天 银行家算法证明错了并挂在黑板上的可怜希希 Num 53 最大子序和 Maximum Subarray O(n)的算法实现了,分治法有空补 class Solution ...

  8. leetcode每日刷题计划-简单篇day2

    今天数模比赛爆肝&操作系统大作业 脖子疼orz先把题过了保证flag不倒..个别细节回头看吧 Num 13 罗马数字转整数 Roman to Integer 一遍提交过,开始编译出了点问题 具 ...

  9. leetcode每日刷题计划-简单篇day13

    Num 169 先码,回头再说,摩尔算法... tle了 class Solution { public: int majorityElement(vector<int>& num ...

随机推荐

  1. [ Codeforces Round #554 (Div. 2) C]

    C. Neko does Maths time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  2. sklearn pipeline

    sklearn.pipeline pipeline的目的将许多算法模型串联起来,比如将特征提取.归一化.分类组织在一起形成一个典型的机器学习问题工作流. 优点: 1.直接调用fit和predict方法 ...

  3. 《DSP using MATLAB》Problem 7.16

    使用一种固定窗函数法设计带通滤波器. 代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...

  4. Android Studio 调试快捷键

    一直在用微软的东西,用 Android Studio 开发还是太坑了.网上很多人说调试快捷竟然都是错的,不知道是不是不同版本不一样. Android Studio 3.2 快捷键如下: F7:进入当前 ...

  5. Noname

    版本: LayaAir IDE 2.0.1beta laya.core.js ___Laya ColorUtils LayaGLQuickRunner DrawTextureCmd Point Col ...

  6. Linux csplit命令详解

    Linux csplit命令 Linux csplit命令用于分割文件.拆解文件主要是split和csplit命令,如果说split是按大小来拆分的话,那么csplit则可按匹配来拆分: 将文件依照指 ...

  7. JQuery操作属性、样式、风格(attr、class、css)

    样式操作 <p class="myclass" title="选择喜欢的水果">你最喜欢的水果是?</p> 在上面代码中,class也是 ...

  8. Win10使用VNC连接Centos7远程桌面

    一.安装VNC Viewer 1.首先win10下载安装VNC VIEWER 或者直接下载绿色版 2.linux系统安装vnc: 检查linux是否安装vnc:rpm -q tigervnc tige ...

  9. 面向对象:静态属性,静态方法,组合,继承,衍生,继承之mro线性顺序列表,面向对象综合实例

    1.静态属性(附有装饰器) class Room: def __init__(self,name,owner,width,length,height): self.name=name self.own ...

  10. Linux环境下使用Android NDK编译c/c++生成可执行文件

    1.安装Android NDK至Linux(Lubuntu 16) 从网上下载 android-ndk-r13b-linux-x86_64.zip,本人将其解压至/home/guanglun/work ...