leetcode每日刷题计划-简单篇day4
腰酸腿疼肝数模
被教育说代码风格像是小学生而且有点冗余
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的更多相关文章
- leetcode每日刷题计划-简单篇day5
刷题成习惯以后感觉挺好的 Num 27 移除元素 Remove Element 跟那个排序去掉相同的一样,len标记然后新的不重复的直接放到len class Solution { public: i ...
- leetcode每日刷题计划-简单篇day3
收到swe提前批面试hhh算是ep挂了的后续 努力刷题呀争取今年冲进去! Num 21 合并两个有序链表 Merge Two Sorted Lists 注意新开的链表用来输出结果的是ListNode ...
- leetcode每日刷题计划-简单篇day1
orzorz开始刷题 争取坚持每周平均下来简单题一天能做两道题吧 非常简单的题奇奇怪怪的错误orz越不做越菜 Num 7 整数反转 Reverse Integer 刚开始多给了一个变量来回折腾占地方, ...
- leetcode每日刷题计划-简单篇day12
Num 125 验证回文串 Valid Palindrome 非常有收货的一道题嘻嘻嘻,本来是考试期间划水挑的题,坑点有点多 第一个是注意对temp1和temp2中途更新的判断 第二个是字符串频繁的作 ...
- leetcode每日刷题计划-简单篇day10
跳题,不熟悉的留到周末再做. 保持冷静,不信画饼. num 100 相同的树 Same Tree 做法可能不是特别简洁,注意一下.最后判断完子树以后,要确定根的数值是一样的 然后在isleaf的判定先 ...
- leetcode每日刷题计划-简单篇day9
Num 38 报数 Count and Say 题意读起来比较费劲..看懂了题还是不难的 注意最后的长度是sz的长度,开始写错写的len 在下次计算的时候len要更新下 说明 直接让char和int进 ...
- leetcode每日刷题计划-简单篇day6
突发奇想&胡思乱想的一天 银行家算法证明错了并挂在黑板上的可怜希希 Num 53 最大子序和 Maximum Subarray O(n)的算法实现了,分治法有空补 class Solution ...
- leetcode每日刷题计划-简单篇day2
今天数模比赛爆肝&操作系统大作业 脖子疼orz先把题过了保证flag不倒..个别细节回头看吧 Num 13 罗马数字转整数 Roman to Integer 一遍提交过,开始编译出了点问题 具 ...
- leetcode每日刷题计划-简单篇day13
Num 169 先码,回头再说,摩尔算法... tle了 class Solution { public: int majorityElement(vector<int>& num ...
随机推荐
- [ 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 ...
- sklearn pipeline
sklearn.pipeline pipeline的目的将许多算法模型串联起来,比如将特征提取.归一化.分类组织在一起形成一个典型的机器学习问题工作流. 优点: 1.直接调用fit和predict方法 ...
- 《DSP using MATLAB》Problem 7.16
使用一种固定窗函数法设计带通滤波器. 代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...
- Android Studio 调试快捷键
一直在用微软的东西,用 Android Studio 开发还是太坑了.网上很多人说调试快捷竟然都是错的,不知道是不是不同版本不一样. Android Studio 3.2 快捷键如下: F7:进入当前 ...
- Noname
版本: LayaAir IDE 2.0.1beta laya.core.js ___Laya ColorUtils LayaGLQuickRunner DrawTextureCmd Point Col ...
- Linux csplit命令详解
Linux csplit命令 Linux csplit命令用于分割文件.拆解文件主要是split和csplit命令,如果说split是按大小来拆分的话,那么csplit则可按匹配来拆分: 将文件依照指 ...
- JQuery操作属性、样式、风格(attr、class、css)
样式操作 <p class="myclass" title="选择喜欢的水果">你最喜欢的水果是?</p> 在上面代码中,class也是 ...
- Win10使用VNC连接Centos7远程桌面
一.安装VNC Viewer 1.首先win10下载安装VNC VIEWER 或者直接下载绿色版 2.linux系统安装vnc: 检查linux是否安装vnc:rpm -q tigervnc tige ...
- 面向对象:静态属性,静态方法,组合,继承,衍生,继承之mro线性顺序列表,面向对象综合实例
1.静态属性(附有装饰器) class Room: def __init__(self,name,owner,width,length,height): self.name=name self.own ...
- Linux环境下使用Android NDK编译c/c++生成可执行文件
1.安装Android NDK至Linux(Lubuntu 16) 从网上下载 android-ndk-r13b-linux-x86_64.zip,本人将其解压至/home/guanglun/work ...