做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题)相关推荐

  1. 在做黑马程序员中第10题出错啦,大家帮忙看看

    ------- android培训.java培训.期待与您交流! ---------- 第10题原题:使用TCP协议完成一个客户端一个服务器.客户端从键盘输入读取一个字符串,发送到服务器 我自己的代码 ...

  2. python建立题库随机抽题,用Python读取Excel题库随机组成Word版本试卷

    Excel题目类型有单选.多选.判断,其中多选题最多包含6个选项,判断题只有两个选项(A:正确,B:错误) 此程序将随机抽取单选题20题,多选题10题,判断题20题,组成一张试卷. 运行程序后,将得到 ...

  3. LeetCode Week 1:第 1 ~ 10 题

    专栏--LeetCode 推荐文章 LeetCode Week 1:第 1 ~ 10 题 LeetCode Week 2:第 11 ~ 20 题 --------------------------- ...

  4. 10年程序员怒斥:只会八股文没用,公司招你来是做项目的,不是背题的……

    「作者主页」:士别三日wyx 前段时间跟一个老同事去出项目,我请他喝咖啡.闲聊之间得知他已经在这行干了十年并且在北京成家买房,我肃然起敬,啪!的一下就站起来了.同事摆摆手示意我坐下说话,收手的时候顺带 ...

  5. 这些前端大厂面试题你会做吗?每日10题大厂面试题(七)

    文章目录 题1(构造函数) 题2(generator) 题3(引用拷贝) 题5(String.raw) 题7(为构造函数添加原型方法,原型定义方法和构造函数定义方法的区别) 题8(原型) 题1(构造函 ...

  6. LeetCode LCP 12. 小张刷题计划(二分查找)

    1. 题目 为了提高自己的代码能力,小张制定了 LeetCode 刷题计划,他选中了 LeetCode 题库中的 n 道题,编号从 0 到 n-1,并计划在 m 天内按照题目编号顺序刷完所有的题目(注 ...

  7. 《剑指 Offer I》刷题笔记 1 ~10 题

    <剑指 Offer I>刷题笔记 1 ~10 题 栈与队列(简单) 1. 用两个栈实现队列 _解法 1:暴力做法 解法 2:优化解法 1 2. 包含 min 函数的栈 _解法 1:pop( ...

  8. 力扣 (LeetCode)-对称二叉树,树|刷题打卡

    Github来源:力扣 (LeetCode)|刷题打卡 | 求星星 ✨ | 给个❤️关注,❤️点赞,❤️鼓励一下作者 [已开启]任务一:刷题打卡 * 10 篇 哪吒人生信条:如果你所学的东西 处于喜欢 ...

  9. LeetCode《算法入门》刷题笔记(31 题全)

    LeetCode<算法入门>刷题笔记(31 题全) 二分查找 1. 二分查找 _解法1:二分搜索(迭代) 解法2:二分搜索(递归) 2. 第一个错误的版本 _解法1:二分 3. 搜索插入位 ...

  10. 当科学家们使用计算机来试图,阅读下面一段文字,完成8一10题当科学家们使用计算机来试图预...

    现代文阅读掌握内容: 各种文体有不同的命题规律和答题技巧,不能一概而论. 相对来说说明文和议论文命题方向更集中,答题的格式也相对固定,规律性更强些.解题注重技巧. 记叙文题型更丰富些,答案也更灵活.重 ...

最新文章

  1. HDU 2022 海选女主角
  2. 连续八个季度双位数增长,这家公司业务成功得不像技术派
  3. JavaScript 经典实例日常收集整理(常用经典)
  4. ios截屏 u3d导出Xcode工程截屏
  5. JQuery AJAX 加载 HTML代码“lt”形式的。怎么解析成形式,并且把img解析成图片输出到浏览器中。...
  6. 归并排序Merge sort(转)
  7. 面向对象3-析构函数和私有属性
  8. docker 源码分析 三(基于1.8.2版本),NewDaemon启动
  9. getchar ,putchar,gets,puts的辨析
  10. 使用PXI设备做IC的开短路测试
  11. 规范化、标准化、归一化、正则化
  12. 90后最担心的事情不是猝死而是脱发!赋强教你防脱发!
  13. 联通研究院注重自主研发能力提升, 3人荣获CKA认证
  14. 职称申报时工作单位必须是申请所在省的单位吗?
  15. Python绘制六角星、多角星、小太阳、小风车《打包好的各种游戏源码,画图源码》
  16. 北大青鸟ACCP4.0上机考试评分标准
  17. 【怎么用系列】怎样正确使用百度及其他搜索引擎
  18. 晏殊几何学导读《云藏山鹰心学概要》
  19. 算法工程师9——机器学习概述(下篇-算法进阶)
  20. 奢侈时装,不再迷信千禧一代

热门文章

  1. MySQL一些随机函数记录
  2. php 加密解密函数 sha,使用sha1()函数进行加密-php加密技术
  3. 你有必要不沾计算机一段时间英语,新人教版八年级英语下册unit 1必背词组及句子...
  4. 永远做重要而不紧急的事
  5. java中文getbytes为3_Java getBytes方法详解(字符集问题)
  6. 简单一步解决网页内容无法复制
  7. xml转matlab目标检测,将Cityscape转换为PASACAL VOC格式的目标检测数据集
  8. Python:计算机视觉实现视频的AI换脸(最基础)
  9. 微分几何与斯托克定理
  10. 工程流体力学笔记暂记17(漩涡的基本概念+求解漩涡强度的斯托克斯定理)