![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
本号已弃用
这个作者很懒,什么都没留下…
展开
-
非常好的一篇动态规划入门
转自原文:https://blog.csdn.net/u013309870/article/details/75193592前言最近在牛客网上做了几套公司的真题,发现有关动态规划(Dynamic Programming)算法的题目很多。相对于我来说,算法里面遇到的问题里面感觉最难的也就是动态规划(Dynamic Programming)算法了,于是花了好长时间,查找了相关的文献和资料准备彻底的...转载 2019-03-10 15:16:53 · 273 阅读 · 0 评论 -
1的个数
题目求出1到13的整数中1出现的次数,并算出100到1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。思路暴力求解代码function NumberOf1Between1An...原创 2019-04-28 23:35:26 · 205 阅读 · 0 评论 -
旋转图像
题目给定一个 n × n 的二维矩阵表示一个图像。将图像旋转 90 度(顺时针)。思路找规律,先上下翻转,在沿着主对角线翻转代码function transform(mat , n){ int a; for(let i=0;i<n/2;i++) { for(let j=0;j<n;j++) ...原创 2019-04-26 16:59:01 · 124 阅读 · 0 评论 -
24点游戏
题目输入四个1~10的数字,如果它们通过加减乘除能够得到24点,那么输出其中一种能够得到24点的算式,否则输出null。示例:输入:1,2,4,8输出:’(8+4)21’输入:1,1,1,1输出:null思路直接DFS暴力搜索,每次计算两个数字再放进数组,直到数组里只有一个数为止代码...原创 2019-04-14 16:40:15 · 304 阅读 · 0 评论 -
连续子数组的最大和
题目HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和...原创 2019-04-09 17:38:56 · 149 阅读 · 0 评论 -
最小的k个数
题目输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4思路1.直接排序2.构建容量为k的大顶堆,每次比较堆顶和数组里的数,若小于堆顶则入堆代码function GetLeastNumbers_Solution(input, k){ if(!input || input.length < k){ ...原创 2019-04-09 17:23:14 · 107 阅读 · 0 评论 -
数组中出现次数超过一半的数字
题目数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路根据数组特点来做,数组中有一个数字出现的次数超过数组长度的一半,也就是说它出现的次数比其他所有数字出现的次数的和还要多代码// 第二种function MoreThanH...原创 2019-04-08 18:18:36 · 115 阅读 · 0 评论 -
二叉搜索树的后序遍历序列
题目输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路递归判断代码function VerifySquenceOfBST(sequence) { if (!sequence.length) return false; return judge(sequence, 0, sequence.l...原创 2019-04-02 15:36:55 · 92 阅读 · 0 评论 -
复杂链表的复制
题目输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)思路用map来保存<N,N>,其中一个是p.next指正,一个是p.random指针代码function RandomListNode(x) { this....原创 2019-04-07 21:08:25 · 99 阅读 · 0 评论 -
剑指offer
打算把算法基础补一补,用js刷一遍剑指offer二维数组查找空格替换倒序打印链表二叉树遍历原创 2019-03-22 14:40:40 · 325 阅读 · 0 评论 -
把数组排成最小的数
题目输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。思路把前一个数和后一个数拼接起来的数,然后再与后一个数和前一个数拼接起来的数比较字典序代码function PrintMinNumber(numbers) { numbers.sort(function(s...原创 2019-04-28 23:43:32 · 140 阅读 · 0 评论