做LeetCode题的感悟 (1-10题)
做LeetCode题的感悟 (1-10题)
5. Longest Palindromic Substring
这道题我做出来了,但是复杂度高达为O(n^3)。
最后查看别人答案之后,发现,利用动态规划来解析这题才是正道,复杂度能只用O(n^2)。
6. ZigZag Conversion
这道题重点在于构建数学模型,数学模型建立的好就会很简单,数学模型建立的不好感觉算法就会比较复杂。
对于这种题目更偏向于数学算法,更常用的是归纳法,构建了相应的模型之后,开始找不同位置的数据和String的char索引的关系,然后构建一个完善的算法。
首先我们可固定的是行的行数。因此,我们计算出第一排的数据在String对应的索引的位置,之后再找它对应的每列的数据的规律。
这里用ABCDR…来做String,进行分析。
按照我们这个模型
行的规律是:numRows =1 和numRows = 2比较特殊(特殊的特殊处理),其他的规律很统一,就是开始的每个下表都是numRows*2;但是中间有一个是没有字母的。
接下来时列的规律:index先升后降。
有了这些规律就可以写了。(其实模型建立出来之后,就是自己找到对应的规律就好了,因为可以用到的规律很多。重点是将这些规律抽象为数据计算)
上面的又点复杂,后面转念一想,算了,还是先转成矩阵,然后再处理好了。然后调整了下模型:
这样每次我处理就可以按照奇数行和偶数行来处理了。
8. String to Integer (atoi)
这道题比较烦,因为你根本不知道atoi是什么意思。只能大概理解之后去验证。难怪通过率那么低。
Atoi经过理解就是:
1、 如果前面有空格,忽略空格
2、 如果被非数字的字符阶段就取最大的可以转化为数字的字符。如果是异常数字,则返回0;
3、 超过int型最大值则取最大值
比如测试用例里面:
" -0012a42" 期待值为-12
”+-2“ 期望值为0
10.Regular Expression Matching
这道题很恶心。因为排列组合的形式有很多。本来以为完成了,但是总有一个奇怪形式的测试数据出来,让原来以为完美地系统出现问题。
Eg: aaa a*a
aada ab*a*cd*a
a .
a ab*
abc ab*c*
bbbba .*a*a
bbbba .*c*a*a
bbbba .*c*ca
“” .*
"aasdfasdfasdfasdfas" "aasdf.*asdf.*asdf.*asdf.*s"
我的原则是:在有*的时候所有和*相关的都在*判断那里做处理,只有.而没有*那么需要判断.的前后有么有*,没有就自己处理。
直到这个测试集出现:
"aasdfasdfasdfasdfas" "aasdf.*asdf.*asdf.*asdf.*s"
.* 我的匹配算法,比较贪婪,会一直匹配下去,这里我没有方法进行处理,尤其是这种多个.*同时出现的情况。如此,只能去看别人的算法了。
参看:
https://www.programcreek.com/2012/12/leetcode-regular-expression-matching-in-java/
这里使用递归是正道,奈何我递归并不熟练~~~
做LeetCode题的感悟 (1-10题)相关推荐
- 在做黑马程序员中第10题出错啦,大家帮忙看看
------- android培训.java培训.期待与您交流! ---------- 第10题原题:使用TCP协议完成一个客户端一个服务器.客户端从键盘输入读取一个字符串,发送到服务器 我自己的代码 ...
- python建立题库随机抽题,用Python读取Excel题库随机组成Word版本试卷
Excel题目类型有单选.多选.判断,其中多选题最多包含6个选项,判断题只有两个选项(A:正确,B:错误) 此程序将随机抽取单选题20题,多选题10题,判断题20题,组成一张试卷. 运行程序后,将得到 ...
- LeetCode Week 1:第 1 ~ 10 题
专栏--LeetCode 推荐文章 LeetCode Week 1:第 1 ~ 10 题 LeetCode Week 2:第 11 ~ 20 题 --------------------------- ...
- 10年程序员怒斥:只会八股文没用,公司招你来是做项目的,不是背题的……
「作者主页」:士别三日wyx 前段时间跟一个老同事去出项目,我请他喝咖啡.闲聊之间得知他已经在这行干了十年并且在北京成家买房,我肃然起敬,啪!的一下就站起来了.同事摆摆手示意我坐下说话,收手的时候顺带 ...
- 这些前端大厂面试题你会做吗?每日10题大厂面试题(七)
文章目录 题1(构造函数) 题2(generator) 题3(引用拷贝) 题5(String.raw) 题7(为构造函数添加原型方法,原型定义方法和构造函数定义方法的区别) 题8(原型) 题1(构造函 ...
- LeetCode LCP 12. 小张刷题计划(二分查找)
1. 题目 为了提高自己的代码能力,小张制定了 LeetCode 刷题计划,他选中了 LeetCode 题库中的 n 道题,编号从 0 到 n-1,并计划在 m 天内按照题目编号顺序刷完所有的题目(注 ...
- 《剑指 Offer I》刷题笔记 1 ~10 题
<剑指 Offer I>刷题笔记 1 ~10 题 栈与队列(简单) 1. 用两个栈实现队列 _解法 1:暴力做法 解法 2:优化解法 1 2. 包含 min 函数的栈 _解法 1:pop( ...
- 力扣 (LeetCode)-对称二叉树,树|刷题打卡
Github来源:力扣 (LeetCode)|刷题打卡 | 求星星 ✨ | 给个❤️关注,❤️点赞,❤️鼓励一下作者 [已开启]任务一:刷题打卡 * 10 篇 哪吒人生信条:如果你所学的东西 处于喜欢 ...
- LeetCode《算法入门》刷题笔记(31 题全)
LeetCode<算法入门>刷题笔记(31 题全) 二分查找 1. 二分查找 _解法1:二分搜索(迭代) 解法2:二分搜索(递归) 2. 第一个错误的版本 _解法1:二分 3. 搜索插入位 ...
- 当科学家们使用计算机来试图,阅读下面一段文字,完成8一10题当科学家们使用计算机来试图预...
现代文阅读掌握内容: 各种文体有不同的命题规律和答题技巧,不能一概而论. 相对来说说明文和议论文命题方向更集中,答题的格式也相对固定,规律性更强些.解题注重技巧. 记叙文题型更丰富些,答案也更灵活.重 ...
最新文章
- HDU 2022 海选女主角
- 连续八个季度双位数增长,这家公司业务成功得不像技术派
- JavaScript 经典实例日常收集整理(常用经典)
- ios截屏 u3d导出Xcode工程截屏
- JQuery AJAX 加载 HTML代码“lt”形式的。怎么解析成形式,并且把img解析成图片输出到浏览器中。...
- 归并排序Merge sort(转)
- 面向对象3-析构函数和私有属性
- docker 源码分析 三(基于1.8.2版本),NewDaemon启动
- getchar ,putchar,gets,puts的辨析
- 使用PXI设备做IC的开短路测试
- 规范化、标准化、归一化、正则化
- 90后最担心的事情不是猝死而是脱发!赋强教你防脱发!
- 联通研究院注重自主研发能力提升, 3人荣获CKA认证
- 职称申报时工作单位必须是申请所在省的单位吗?
- Python绘制六角星、多角星、小太阳、小风车《打包好的各种游戏源码,画图源码》
- 北大青鸟ACCP4.0上机考试评分标准
- 【怎么用系列】怎样正确使用百度及其他搜索引擎
- 晏殊几何学导读《云藏山鹰心学概要》
- 算法工程师9——机器学习概述(下篇-算法进阶)
- 奢侈时装,不再迷信千禧一代
热门文章
- MySQL一些随机函数记录
- php 加密解密函数 sha,使用sha1()函数进行加密-php加密技术
- 你有必要不沾计算机一段时间英语,新人教版八年级英语下册unit 1必背词组及句子...
- 永远做重要而不紧急的事
- java中文getbytes为3_Java getBytes方法详解(字符集问题)
- 简单一步解决网页内容无法复制
- xml转matlab目标检测,将Cityscape转换为PASACAL VOC格式的目标检测数据集
- Python:计算机视觉实现视频的AI换脸(最基础)
- 微分几何与斯托克定理
- 工程流体力学笔记暂记17(漩涡的基本概念+求解漩涡强度的斯托克斯定理)