随笔分类 - 算法
摘要:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1: 输入:nums = [-1,0,1,2,-1,-4] 输出:[[-1,-1,2]
阅读全文
摘要:编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入:strs = ["flower","flow","flight"] 输出:"fl" 示例 2: 输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在
阅读全文
摘要:https://leetcode-cn.com/problems/roman-to-integer/ 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个
阅读全文
摘要:https://leetcode-cn.com/problems/integer-to-roman/ 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个
阅读全文
摘要:https://leetcode-cn.com/problems/container-with-most-water/ 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)
阅读全文
摘要:https://leetcode-cn.com/problems/list-of-depth-lcci/ 这道题比较简单,就是遍历树,广度优先,一层层的遍历,唯一需要注意的是,如何定义到了第几层,做法就是在每一层结束,下一层开始,加入一个标识符。 /** * Definition for a bin
阅读全文
摘要:https://ac.nowcoder.com/acm/problem/107414 这个题一定要好好读题,尤其是对于与上一个字符串对比的得分是怎么计算的,不是连续子串相同,不是最大公共子序列,而是对齐情况下,最大相同的字符个数。题目中的示例正好避开了这个说明,导致思路错误。 链接:https://
阅读全文
摘要:链接:https://ac.nowcoder.com/acm/contest/1001/C来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 背景 七夕节因牛郎织女的传说而被扣上了「情
阅读全文
摘要:链接:https://ac.nowcoder.com/acm/problem/16739?&headNav=acm来源:牛客网有N堆纸牌,编号分别为1,2,…, N。每堆上有若干张,但纸牌总数必为N的倍数。可以在任一堆上取若于张纸牌,然后移动。 移牌规则为:在编号为1堆上取的纸牌,只能移到编号为2的
阅读全文
摘要:有一个背包容积是v,有n种物品,第i种物品的体积是vi,重量是wi,最多mi个,求如何放入物品可以使背包装入的重量最重。 这个与完全背包非常相似了,唯一的区别是个数,我们只需要在遍历个数循环的时候再加一个条件判断即可。
阅读全文
摘要:有n种物品,每种物品的体积是ci,价值是wi,数量不限,现在有一个容积是v的背包,如何装物品才能使价值最大。 这个题与0-1背包很像,或者说是0-1背包的升级版。原来物品有两个状态可选,0和1;现在有v/ci+1个状态可选,0(不装),1(装一个),2(装两个)……v/ci(装v/ci个)。 那么把
阅读全文
摘要:参考 https://zh.wikipedia.org/wiki/%E8%B4%AA%E5%BF%83%E7%AE%97%E6%B3%95 贪心算法(英语:greedy algorithm),又称贪婪算法,是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最
阅读全文
摘要:有一个国家发现了5座金矿,每座金矿的黄金储量不同,需要参与挖掘的工人人数也不同。参与挖矿工人的总数是10人。每座金矿要么全挖,要么不挖 ,不能派出一半人挖取一半金矿。要求如何分配工人才能挖出最多的黄金。
第一座金矿含金500,需要5人;第二座金矿含金200,需要3人;第三座金矿含金300,需要4人;第四座金矿含金350,需要3人;第五座金矿含金400,需要5人。
阅读全文
摘要:问题是给定字符串x和y,求出两个当中最长的公共子序列。比如x=abcdef y=acefg,那么他们的最长公共子序列就是acef。就是求x的所有可能的子字符串与y所有的子字符串匹配,如果相同,那么就是一个公共子序列,然后求最长的一个。
阅读全文
摘要:参考 https://www.cnblogs.com/graphics/archive/2011/07/14/2105195.html https://zhuanlan.zhihu.com/p/79863106 https://zh.wikipedia.org/wiki/%E7%BB%84%E5%9
阅读全文
摘要:参考 https://zh.wikipedia.org/wiki/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92 https://juejin.im/post/5a29d52cf265da43333e4da7 动态规划(英语:Dynamic programming,简称DP
阅读全文
摘要:参考 https://blog.csdn.net/livelylittlefish/article/details/6555347 假设有280g盐,有一架天平,有两个砝码,分别是4g和14g 。能否在3次内将280g食盐分为100g和180g两堆,请详细描述你的解决方法。 这是另外一种砝码称重问题
阅读全文
摘要:参考 https://blog.csdn.net/livelylittlefish/article/details/3854702 https://www.guokr.com/article/3742 http://yetanothermathprogrammingconsultant.blogsp
阅读全文
摘要:参考 https://blog.csdn.net/linhaiyun_ytdx/article/details/50629743 如果只有5个砝码,重量分别是1,3,9,27,81。已知它们可以组合称出1到121之间任意整数重量(砝码允许放在左右两个盘中)。本题目要求编程实现:对用户给定的重量,给出
阅读全文
摘要:题目 给定几种重量的砝码,数量不限,判断是否可以称出任意重量的物品。有时间空间限制,时间是1秒内,也就是不能用笨重的穷举法。输入规则,第一行输入一个整数,表示有几个砝码;然后挨个输入每个砝码的重量。可以称重的物品都是整数。能,就输出YES;不能,输出NO。 示例1 1 1 YES 第一个1是有一种重
阅读全文