LeetCode编程总结

# 1、在有序表中查找两数组指定的和,双指针法# 2、滑动窗口 : 连续子数组之和# 3、二分查找 : 顺序数组中查找特定的值

# 4、递归程序的真正的构建是从底向上的,这就是为什么递归终止条件要写在最前面#   参见 反转链表的递归程序 LeetCode206

# 5、 链表归并排序的递归过程,要好好体会一下

# 6、树型的暴力搜索(全路径搜索 、DFS )需要进行回溯  参见 LeetCode 93

# 7、利用 return 能使树型递归提早结束,类似于DFS 参见 LeetCode 37

# 8、记忆化搜索,自上而下的解决问题、 动态规划,自下而上的解决问题 参见斐波那契数列

# 9、记忆化递归时,一开始就需要判断原问题是否被再次遇到,若遇到则返回记忆值,若没遇到则#    进入递归过程,并更新记忆值  错误来源参见 LeetCode 198

# 10、递归返回的过程,其实就是自底向上的构建过程(类似于动态规划)、 参见 LeetCode 337  刘宇波代码3

# 11、深度递归和层次递归的感悟: 参见LeetCode 322      #深度递归需要使用传递状态参数,并一般使用全局变量更新最优解      #层数递归只需要考虑底层和上一层的递推关系,一般不使用全局变量

# 12、01背包问题:一个序列的各个元素都有选与不选两种状态      # 20190113

# 13、数组的记忆化递归和字典的记忆化递归?  LeetCode 137  20190119

# 14、动态规划难的是状态的定义, 如 LeetCode 376 上升沿和下降沿的状态

# 15、动态规划状态定义的一般原则是F(n,r):n是问题规模,r是该规模下的特定限定,比如LeetCode 376#     的状态定义就是一个很好的启示

# 16、动态规划总结:1)解空间树加重复子问题 生长学习法#               2)最优问题: 最大值最小值……#               3)子问题的同质: 都是连续序列、矩阵……#               4)重复问题: 空间换时间 状态矩阵#               5)从顶向下:记忆数组  从底向上:递推  终局思想  本质是同一个东西。  20190228

# 17、编程要注意状态的定义,变量的代表含义 ,如直接插入排序 j代表a[i]直接要插入的空预留位值,j-1 要不断的#     与temp=a[i] 比较  :即要找到 a[i] 插入的最终位置。

# 算法面试一定要先实现出来,然后再考虑优化的可行性。# 算法注重的是思想,如leetcode 108  怎样才能想到用递归的思想呢?# 总的来说还是我的编程思想的素养不够呀    --20190305# 编程题要进行一定的抽象建模 如 LeetCode 235 二叉树搜索树的公共祖先问题。# 编程时一定要注意函数的定义是什么? 如Leetcode 236 函数的定义是返回最终的答案  20100305# 编程问题也要注意分治讨论:即划分问题的子空间:#     如 leetcode404 : 1)根节点有左叶子  2)根节点没左叶子

# 20190302 找工作期间 总结#18、 数组类问题:#     1)滑动窗口#     2)查找表#     解空间树#     1)初值状态的确定#     2)搜索策略 : 剪支 (优化问题)#     递归和分治类问题:是个基本的编程思想(函数的定义很重要)#     1)递归返回值的处理:        # 要定义好函数的返回逻辑或状态或者值,并从底向上构建        # 如 leetcode 108 和 113  20190305#     2)递归程序的编写:#       # 先写返回条件        # 返回条件写好了,就可以当做函数功能已经完成,并可以分治的解决问题了#     3) 数据结构有递归结构,要考虑一下递归的算法        # 如数组、链表、二叉树等  20190305#     4)visit 数组用于去重#     5)状态出栈用于回溯#     动态规划:#     1)初值的设定是关键:a 状态函数的定义可以说明函数的初值  如 01背包问题#                      b 初值的设置技巧可以用最小规模数据进行验证#     2)状态的递推顺序:新值必须在旧值的基础上#                                         20190306#     贪心:最强烈的状态给最强烈的需求 :分饼干  20190306#     1)证明过程只能是反证法#

原文地址:https://www.cnblogs.com/lux-ace/p/10546981.html

时间: 2024-11-05 23:31:37

LeetCode编程总结的相关文章

leetcode&编程之美——博文目录

leetcode刷题整理: 1——Two Sum(哈希表hashtable,map) 2——Add Two Numbers(链表) 3——Longest Substring Without Repeating Characters(set,哈希表,两个指针) 9——Palindrome Number (数学问题) 11——Container With Most Water(两个指针) 12——Integer to Roman(string,数学问题) 13——Roman to Integer(s

LeetCode编程训练 - 拓扑排序(Topological Sort)

拓扑排序基础 拓扑排序用于解决有向无环图(DAG,Directed Acyclic Graph)按依赖关系排线性序列问题,直白地说解决这样的问题:有一组数据,其中一些数据依赖其他,问能否按依赖关系排序(被依赖的排在前面),或给出排序结果. 最常用解决拓扑排序问题的方法是Kahn算法,步骤可以概括为: 1. 根据依赖关系,构建邻接矩阵或邻接表.入度数组 2. 取入度为0的数据(即不依赖其他数据的数据),根据邻接矩阵/邻接表依次减小依赖其的数据的入度 3. 判断减小后是否有新的入度为0的数据,继续进

leetCode编程题

已知链表1->2->3->4,先需要删除3这个节点,请完成函数.注意,这里只给定要删除的节点3,并不知道3之前的节点是哪个,以及整个链表是什么节点. void delete(ListNode node){ node.val = node.next.val; node.next = node.next.next; } 请思考为什么要这样做?和以往的删除节点有什么区别?

大三拿腾讯offer

作者:逸文奥特曼链接:https://zhuanlan.zhihu.com/p/26637967来源:知乎著作权归作者所有,转载请联系作者获得授权. 4月26日收到了腾讯的offer,终于安心了,很多小伙伴们要我写面经介绍下,其实自己能拿到腾讯的offer 99%是运气~, 这里就介绍下自己的面经跟总结自己的看的书跟学习方法, 自己来自一所非985垫底的211大学)~大三本科,主要学习的是Linux内核/C++,投的岗位都是后台开发, 自己的项目也就2个demo,一个简易kernel,一个很简单

我的记事本

书单: 一.计算机类: 二.经济类: 三.人文社科类: 1.<一岁就上常青藤>——薛涌 2.<常识>——梁文道 其他: 1.Leetcode 编程训练

线段树(Segment Tree)(转)

原文链接:线段树(Segment Tree) 1.概述 线段树,也叫区间树,是一个完全二叉树,它在各个节点保存一条线段(即“子数组”),因而常用于解决数列维护问题,基本能保证每个操作的复杂度为O(lgN). 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点. 对于线段树中的每一个非叶子节点[a,b],它的左儿子表示的区间为[a,(a+b)/2],右儿子表示的区间为[(a+b)/2+1,b].因此线段树是平衡二叉树,最后的子节点数目为N,即

Arts打卡第10周

Algorithm.主要是为了编程训练和学习. 每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard). 进行编程训练,如果不训练你看再多的算法书,你依然不会做算法题,看完书后,你需要训练. 关于做Leetcode的的优势,你可以看一下我在coolshell上的文章 Leetcode 编程训练 - 酷 壳 - CoolShell. Review:主要是为了学习英文,如果你的英文不行,你基本上无缘技术高手. 所以,需要你阅读并点评至少一篇英文技术文章,

ARTS-1

ARTS的初衷 Algorithm:主要是为了编程训练和学习.每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard).进行编程训练,如果不训练你看再多的算法书,你依然不会做算法题,看完书后,你需要训练.关于做Leetcode的的优势,你可以看一下我在coolshell上的文章 Leetcode 编程训练 - 酷 壳 - CoolShell. Review:主要是为了学习英文,如果你的英文不行,你基本上无缘技术高手.所以,需要你阅读并点评至少一篇英文技术

LeetCode算法编程(两题)

今天看到酷壳推荐的国外编程LeetCode算法编程网站,上面目前有154道算法题,感觉很有意思,平常工作也比较忙,现在很少有时间来锻炼算法相关的东西,有空的时候静下心来,温习下基础,活跃下自已的思路,也是有必要的.先做了几道,后面会陆续补充其它的题目. 1.题目-PlusOne Given a non-negative number represented as an array of digits, plus one to the number. The digits are stored s