编程与算法
文章平均质量分 69
记录平时在编程中遇到的trick
qq_42987967
这个作者很懒,什么都没留下…
展开
-
面试编程题:求不大于n的最大的数
【代码】面试编程题:求不大于n的最大的数。原创 2022-09-16 01:04:36 · 922 阅读 · 0 评论 -
判断矩形与矩形、圆、三角形的相交问题
并且新构成的矩形为(max(x1,x3),max(y1,y3))、(min(x2,x4),min(y2,y4))。可以根据新的点求出矩形的面积,如果用新的点求出的边长小于0,说明是不相交的。那么其构成的向量p1p2的x分量的绝对值要小于两矩形长的一半,向量p1p2的x分量的绝对值要小于两矩形宽的一半。如果满足max(x1,x3)原创 2022-09-15 01:28:48 · 840 阅读 · 0 评论 -
概率编程:小明小红掷骰子
小明小红掷骰子,小明有n个骰子,第i个骰子有vi个面,每个面的点数为1、2、3...vi。小明小红将自己的所有的骰子都掷一次,小明的骰子的点数总和有多大概率比小红的大。小红有m个骰子,第j个骰子有vj个面,每个面的点数为1、2、3...vj。原创 2022-08-21 22:49:34 · 321 阅读 · 0 评论 -
完全背包与01背包
这个转移的状态V[i][j]的含义即在考虑第0--i个物品时,容量为j的背包所能承载的最大价值。首先,当背包容量j原创 2022-07-17 18:22:27 · 589 阅读 · 0 评论 -
交换排序--冒泡排序与快速排序
关于交换,王道考研数据结构书里是这样说的: 有一个博主讲的也不错:交换排序 (冒泡排序 && 快速排序)_跳动的bit的博客-CSDN博客 总之就是比较并移位。并且最经典的交换排序算法是冒泡与快速排序。顾名思义,就是跟冒泡泡一样,不断地比较交换把最大的值冒到当前的最顶层。 动图演示--摘抄自:1.1 冒泡排序 | 菜鸟教程当然也可以反着冒泡,嗷不,应该叫沉底排序了冒泡的复杂度是稳定的。时间复杂度为一个等差数列的前n项和,为n²复杂度。时间复杂度:O(n²)空间复杂度:O(1)快排是基于分治的,直原创 2022-07-03 13:31:08 · 218 阅读 · 0 评论 -
二叉树的遍历
根据遍历顺序可分为先序遍历、中序遍历、后序遍历、层次遍历,根据遍历方法可分为递归法、迭代法、Morris法。在此以leetcode上的题作为例子,使用的是C++:144. 二叉树的前序遍历94. 二叉树的中序遍历145. 二叉树的后序遍历102. 二叉树的层序遍历一、递归法递归法相对来说简单粗暴有规律,三者区别知识在访问顺序不同罢了。但是真要考试很可能不会让写递归法。1、先序遍历/** * Definition for a binary tree node. * s原创 2022-01-25 02:13:42 · 556 阅读 · 0 评论 -
leetcode动态规划入门系列总结
最近LeetCode的动态规划21天入门系列的学习计划,经历了一个从自闭到自闭的过程,但不管怎么说,还是及时做个笔记总结一下吧,「动态规划」 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台首先讲讲自己做动态规划题的感悟。感觉动态规划的题就是有点抽象,有一些比较直观的,没接触过也能大致推导出转移方程,不直观的那种基本上只能记住套路,如果你想试图证明其合理性也不是不行,就是非常非常难。而且找状态的时候是需要经验的,有时候需要猜,设置的状态到底合不合理,遍历顺序是否是对的等等,感觉差不多原创 2021-12-31 11:34:12 · 430 阅读 · 0 评论 -
关于递归的一点理解
一、递归的引入可以先参考:对于递归有没有什么好的理解方法? - 知乎递归算法讲解_LightOn-CSDN博客_递归算法递归,包含递去和归来两个过程。递归跟数学归纳法有不少相似之处。可参考:递归与数学归纳法_野生码农-CSDN博客1.递归的格式1.终止条件一定与输入的参数有关。终止条件决定了递归的深度2.终止条件处理方法决定了最后的返回内容3.递归内容即明确递归函数是如何调用自己的2.如何才能写出递归函数个人感觉递归是需要有经验支撑的。链表、树、字符串或者数字问题原创 2021-12-04 12:23:21 · 404 阅读 · 0 评论