
算法
Mysterious superstar
没有什么是不劳而获的
君子藏器于身,待时而动。不鸣则已,鸣则冲天
展开
-
0 1背包 填表实现
01背包问题是一个经典的问题了,接下来使用动态规划思想,填表法来解决一下这个问题吧。填表法就基本的操作步骤 :第一步:分析问题的状态变化,将在所有物品里得到的最大价值分割成子问题,子问题:只有一个物品的时候,得到的最大价值,有两个物品的时候得到的最大价值,随着物品数不断增加,每增加一个物品得到的最大的价值。只有一个物品的时候,很容易得到最大的价值,升级为两个物品呢,这时候就有取舍了,就是在袋子当前的容量下要不要将物品放入袋子中?首先取决于,物品能不能放进袋子,如果能放进袋子里,价值怎么来衡量?带原创 2020-08-25 17:05:54 · 940 阅读 · 0 评论 -
回溯
今天理解了一点回溯的相关知识,记录一下。链接:https://www.nowcoder.com/questionTerminal/57d85990ba5b440ab888fc72b0751bf8?answerType=1&f=discussion来源:牛客网给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1,m<=n),每段绳子的长度记为k[1],...,k[m]。请问k[1]x...xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,原创 2020-07-03 23:34:11 · 233 阅读 · 0 评论 -
【动态规划】连续子数组的最大和,手撕了它。
最近接触到了一些动态规划的题目,也翻阅了好多资料,研究了一下动态规划的思想,现在来个总结。https://www.nowcoder.com/practice/459bd355da1549fa8a49e350bf3df484?tpId=13&tqId=11183&tPage=2&rp=2&ru=/ta/coding-interviews&qru=/t...原创 2019-09-24 22:39:59 · 324 阅读 · 0 评论 -
守口如瓶
一、项目简介 传统的对称加密,是甲方使用一种规则加密,乙方要使用相同的规则解密。这种加密方式的关键在于保证解密规则的安全性,往往这是一个让人头疼的问题。在1976年,两位美国的计算机学家Whitfifield Diffie和 Martin Hellman,提出了新的构想,在不传递加密规则的情况下对对数据进行加密。称为“非对称加密算法”,笔者对此非常感兴趣,决定自己实现,探索其中的奥秘。...原创 2020-03-23 18:35:31 · 275 阅读 · 0 评论 -
手撕一个二分查找你可以做到的
二分查找作为一种非常高效的查找算法,是非常值得我们学习和掌握的。首先二分查找是基于一个排序数组或者一个排序数组经过一定规则改变过的数组,这个是使用二分查找的前提。普通的二分查找,比如在排序数组中找一个数,算法通过不断的以二倍的方式缩小待查找的区间,所以提高查找的效率到O(long n)举例普通的二分查找int binarySearch(int[] nums, int target...原创 2020-03-17 14:03:31 · 252 阅读 · 0 评论 -
动态规划总结
动态规划是一种运筹学的思想,体现在程序上面就是通过状态转移方程穷举出所有的情况。状态转移方程的设定思想类似于数学证明上的“数学归纳法”,假设结果是正确的,假设的条件也是正确的,通过假设的条件和结果,推导出结论。说白了,状态转移方程是F(i)=F(i-1)+当前操作;当前的结果,仅仅取决于上一步的结果和本次的决定。解决动态规划问题中的 dp table(动态规划表)是一种常用的解法,(并...原创 2020-03-02 16:29:04 · 331 阅读 · 0 评论 -
回顾八大排序算法
常见排序算法一、直接插入排序:插入排序是从数组的首元素开始,遍历整个数组,遍历到每个元素的时候,将这个元素依次和它前面的元素进行比较,如果按照从小到大的方式进行排序的话,要求前面的所有元素的值小于它本身,使用一个中间变量,将这个元素保存起来,将大于它的元素依次往...原创 2020-02-14 16:42:55 · 1049 阅读 · 0 评论 -
朋友圈
班上有N名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B的朋友,B 是 C的朋友,那么我们可以认为 A 也是 C的朋友。所谓的朋友圈,是指所有朋友的集合。给定一个N * N的矩阵M,表示班级中学生之间的朋友关系。如果M[i][j] = 1,表示已知第 i 个和 j 个学生互为朋友关系,否则为不知道。你必须输出所有学生中的已知的朋友圈总数。示...原创 2020-02-09 13:03:49 · 269 阅读 · 0 评论 -
并查集
并查集并查集在逻辑上是一片森林,在物理上是一个数组。与堆类似,堆在逻辑上是二叉树,在物理上是数组,并查集用于解决人际关系的问题。下面通过一个实际的社会关系来认识并查集。如上图所示,一共有三个朋友圈(一般假设朋友的朋友也是朋友,可以组成朋友圈),使用并查集来...原创 2020-02-09 12:48:46 · 234 阅读 · 0 评论 -
岛屿数量 DFS
https://leetcode-cn.com/problems/number-of-islands/给定一个由'1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。输入: 11110 11010 11000 00000 输出:1力扣的题题目简短,首先应该将题目的意思...原创 2020-02-08 18:53:17 · 456 阅读 · 0 评论 -
BFS广度优先遍历详解
广度优先遍历 ---一石激起千层浪和...原创 2020-02-08 12:44:50 · 2037 阅读 · 1 评论 -
DFS搜索算法详解
深度优先搜索 ---一条道走到黑DFS其实叫深度...原创 2020-02-07 14:38:03 · 26636 阅读 · 1 评论 -
字符串通配符(动态规划超详细填表)
链接:https://www.nowcoder.com/questionTerminal/43072d50a6eb44d2a6c816a283b02036来源:牛客网问题描述:在计算机中,通配符一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。现要求各位实现字符串通配符的算法。要求:实现如下2个通配符:*:匹配0个或以上的字符(字符由英文字母和数字0-9组成,不区分大小写。下同...原创 2019-12-08 22:46:51 · 672 阅读 · 0 评论 -
最短编辑距离(动态规划超详细填表法)
链接:https://www.nowcoder.com/questionTerminal/9649617be3bf42288f50758df4310655来源:牛客网UNIX系统下有一个行编辑器ed,它每次只对一行文本做删除一个字符、插入一个字符或替换一个字符三种操作。例如某一行的内容是“ABC”,经过把第二个字符替换成“D”、删除第一个字符、末尾插入一个字符“B”,这三步操作后,内容就...原创 2019-12-08 20:13:03 · 1076 阅读 · 0 评论