第一次刷leetcode小结
LeetCode 上不会的
Reverse Integer
Gray Code
Generate Parentheses
Pascal's Triangle II 正方向读和反方向读保持不变的区别
Trapping Rain Water 抓住数组的特性 可以排序 可以拿出最大值或者最小值来做参考
Unique Binary Search Trees II 不是溯源的去找根节点,而是重新生成根节点
Anagrams 对于相似的字符串或数组一样,经过排序则是一样的,另外判断是否已经存在一次了,使用标记数组后者Map
Distinct Subsequences 动态规划 通过递推公式确定动态规划的式子
First Missing Positive 数组自操作,通过交换,数值成了索引 A[i] A[A[i]-1] 真是一道好题啊
Word Break 动态规划问题
Largest Rectangle in Histogram 完全没有思路
Maximum Product Subarray
Candy 从波峰到波谷 从波峰到波谷
Scramble 三维数据二维看~~一些corner case 两个字符串的动态规划问题
往往是用一个字符串的长度变化做横坐标,另外一个字符串的长度变化做纵坐标,左右摇摆,上下摇摆,诸如此类方法。如果发现二维还不能解决问题,那么好,我就再加上一维变成三维动态规划问题,如果是一个字符串问题,那就更简单了,横纵坐标都表示的是这个字符串的长度变化
Longest Valid Parentheses 测试用例没写全而且题意没弄明白,所以一直测试过不了,不过倒是学习了不少的新方法,不断的测试,测试你妹啊
Permutation Sequence
解法简直
华丽丽 厉害 凸显编程之美~~数学的思维
Longest Valid Parentheses
不得不说自己距离
动态规划还有好长的路要走,没有了解到核心的方法和内容,做完之后要再整理一番
Divide Two Integers 数字要考虑数字是正数 负数 0 负数转换成正数的时候 数字会出现溢出的现象 (2^k)*除数
<= 当前被除数 <(2^(k+1))*除数
数学真是一种美
MinStack 网易的面试题,当时会了,现在又不会了,真是为自己的智商担心
Maximum Gap 这个题有两个好的地方,所谓平均值的含义就是必定有比平均值大的也有比平均值小的,如何计算桶的idx 当前数字:num =
min + k*bucket_size 由此求idx
对于int 类型的数据
进行取绝对值的时候,一定要记得强转成Long 在进行abs,因为Int负数的最小值,取绝对值后,int类型是存不了的。
BFS的模板 Queue
LinkedList Boolean isVisited[] ;
Minimum Window Substring 通过HashTable确定字母的数量,然后加上两个指针来回访问,通用的模板。
小结:
深度递归(DFS)考虑可不可以用动态规划来做
到当前为止 字符串往往是到当前字符为止,更新Dp数组(要解决问题的数组),解决方法循环遍历之前的已经计算完的数据解决或者通过对之前的数组进行相加等运算操作进行处理。
划分集合问题,当考虑要遍历所有的子串,所有的自数组问题的时候,可以考虑使用动态规划,从
长度为1的字串或子数组开始,一直遍历到长度问n的字串或者子数组。
链表内部的特点啊,凡是不能该表原始链表的结构,考虑一下,可不可以转换成数学问题,追击问题啊之类的。一个跑一个追,两个一起跑。不让增加空间,只能有开辟两个指针了有木有。真是机智到不行。
思路不好:
Remove Nth Node
From End of List 双指针
Longest
Consecutive Sequence set集合的使用
Pow(x, n) 移位操作 移动一位的含义
收获:
当不知道怎么对数组进行切分时,往往里面存着对应的数学关系。
递归常常结合 交换, 选或者不选 相同的模式 再次进行
除数是0 的情况也得catch 到
动态规划往往可以用填表法完成,同样填表法也有助于发现动态规划的函数表达式
在链表题中,灵活地运用虚拟表头会减少很多工作量
2 链表题往往在收尾处要多判断一下,防止corner case
不满足当前的时间复杂度,还能更快一点,更快一点,分治等策略。
对于计算在一个循环,如循环一个数组或者字符串,在循环中记录一个Max,一定要在循环结束后再一次判断 结尾处是否还需要再次更新Max(开头和结尾是两个需要重要判断的地方)
Time Limited 主要有两个原因 1、对于含有循环的例子 有可能有死循环;2、对于递归的问题,有可能是因为递归的返回值弄的不对,导致一直递归无法结束。
值得重写的Code 不太熟
Insertion Sort
List
待字闺中:
统计数组中每一个出现的次数的问题 A[i] = A[i] * n ; A[A[i]/n]++;A[i]%n的应用
母串中是否存在字串的任意排列 对于排序后的母串和字串相同--字符串的特点;
树的高度问题 回溯也是一种递归
第一次刷leetcode小结的更多相关文章
- 第一次刷Leetcode,为什么耗费很多时间
Leetcode第2题思考过程分析:耗费的时间与思考过程 1. 审题耗费了很长时间,英文看不懂.两个单链表代表了两个整数,整数逆序,(2 -> 4 -> 3) + (5 -> 6 - ...
- 刷leetcode是什么样的体验?【转】
转自:https://www.zhihu.com/question/32322023 刷leetcode是什么样的体验? https://leetcode.com/ 1 条评论 默认排序 按时间排 ...
- 用 JavaScript 刷 LeetCode 的正确姿势【进阶】
之前写了篇文章 用JavaScript刷LeetCode的正确姿势,简单总结一些用 JavaScript 刷力扣的基本调试技巧.最近又刷了点题,总结了些数据结构和算法,希望能对各为 JSer 刷题提供 ...
- 刷LeetCode的正确姿势——第1、125题
最近刷LeetCode比较频繁,就购买了官方的参考电子书 (CleanCodeHandbook),里面有题目的解析和范例源代码,可以省去非常多寻找免费经验分享内容和整理这些资料的时间.惊喜的是,里面的 ...
- 初刷LeetCode的感受
自从上个月进入实验室的云安全项目组后,因为要接触到实际的代码,在实验室博士的建议下我们项目组的硕士开始刷LeetCode练习编程能力,保持每周抽空刷几道算法题.虽然刷的不多,到现在一共只刷了不到30题 ...
- kali 在线教学群 第一次 公开课 小结(1)
kali 在线教学群 第一次 公开课 小结(1) 文/玄魂 1.1 需要准备的基础环境 vmware 虚拟机,kali 2.0 镜像,科学上网工具包.这三项内容,可以在本人的微信订阅号“xuanhun ...
- 第一次 刷 WiFi 模块esp8266 感谢创客阿正
在正哥指导下 第一次 刷 WiFi 模块 少走了 不少弯路 套件里的 两块 机智云 ==== 我的电脑 需要单独供电 先 对应 接好 ic0要记得接gnd 等待上电时要断电重启 等 用助手 返回 ...
- OPPO A7X 刷机小结
OPPO A7X 刷机小结: 概述:根据网上找到的教程(MTK模式刷机教程),没有成功.在QQ上询问一位提供刷机服务的大神,说是只有老版本才能刷. 操作步骤: 刷机工具: MediaTek SP Fl ...
- 2016.08.02 math(leetcode) 小结
math(leetcode) 小结 在leetcode中有些知识点(套路) 判断一个数是不是能被某些数整除,可以用 n%x == 0,循环除的话,就将while(n%x == 0)的循环条件设置判断整 ...
随机推荐
- opencv —— imread、namedWindow & imshow、cvtColor、imwrite 加载、显示、修改、保存图像
加载图像:imread 函数 Mat imread(const string& filename, int flags = 1): filename:需要载入的图像的路径名. flags:加载 ...
- 【37】池化层讲解(Pooling layers)
池化层(Pooling layers) 除了卷积层,卷积网络也经常使用池化层来缩减模型的大小,提高计算速度,同时提高所提取特征的鲁棒性,我们来看一下. 先举一个池化层的例子,然后我们再讨论池化层的 ...
- Qt实践-基于C++的UI设计基础
学习网址:http://c.biancheng.net/view/1824.html 我的代码: 头文件qwdlgmanual.h: #ifndef QWDLGMANUAL_H #define QWD ...
- 客户端负载均衡框架:Spring Cloud Ribbon
最近在学习Spring Cloud的知识,现将客户端负载均衡框架 Spring Cloud Ribbon 的相关知识笔记整理如下.[采用 oneNote格式排版]
- Python2与Python3比较
1.print 函数 1. print语句没有了,取而代之的是print()函数. Python 2.6与Python 2.7部分地支持这种形式的print语法. 2.Unicode 1. 在pyt ...
- VMware Workstation Pro工具
安装包 链接:https://pan.baidu.com/s/1n-URb83lHtric3Ds8UbF9Q 提取码:c9z5 密钥 FF31K-AHZD1-H8ETZ-8WWEZ-WUUVA CV7 ...
- python 字典 day6
字典 :键与值用:分开 项与项用,分开 特点:key-value结构‘ key为不可变数据类型,key必须唯一 可以任意存放多个value值 ,可以不唯一,可修改 无序 查询速度极快 且不受di ...
- Java数列循环右移
描述 有n个整数组成一个数组(数列).现使数列中各数顺序依次向右移动k个位置,移出的数再从开头移入.输出移动后的数列元素,元素之间逗号隔开. 题目没有告诉你n的范围,要求不要提前定义数组的大小. 另外 ...
- 复习promise---node
promise这个东西,我都不知道见过多少回了!,非常重要,这里在回忆一遍 发现问题 const fs = require('fs') fs.readFile('./data/1.txt', (err ...
- xadmin使用
xadmin使用 官方 使用参考