随笔分类 -  算法

平常写的算法和一些算法心得
摘要:题目描述 有时候程序员有很奇怪的方法来隐藏他们的口令。Binny会选择一个字符串S(由N个小写字母组成,5<=N<=5,000,000),然后他把S顺时针绕成一个圈,每次取一个做开头字母并顺时针依次取字母而组成一个字符串。这样将得到一些字符串,他把它们排序后取出第一个字符串。把这个字符串的第一个字母 阅读全文
posted @ 2019-05-16 10:38 你说你好 阅读(218) 评论(0) 推荐(0)
摘要:题目描述 今年是国际数学联盟确定的“20002000――世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰9090周年。在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZXZ也有幸得以参加。活动中,主持人给所有参加活动的选手出了这样一道题目: 设有一个长度为NN的数 阅读全文
posted @ 2019-05-06 17:13 你说你好 阅读(296) 评论(0) 推荐(0)
摘要:题目: 题目背景 战争已经进入到紧要时间。你是运输小队长,正在率领运输部队向前线运送物资。运输任务像做题一样的无聊。你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们。士兵们十分愤怒,因为这座独木桥十分狭窄,只能容纳11个人通过。假如有22个人相向而行在桥上相遇, 阅读全文
posted @ 2019-05-02 20:53 你说你好 阅读(600) 评论(0) 推荐(0)
摘要:题目: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目 阅读全文
posted @ 2019-04-30 17:26 你说你好 阅读(367) 评论(0) 推荐(0)
摘要:题目: 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。 示例: 分析: 首 阅读全文
posted @ 2019-04-26 10:29 你说你好 阅读(466) 评论(0) 推荐(0)
摘要:题目: 班上有 N 名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友。所谓的朋友圈,是指所有朋友的集合。 给定一个 N * N 的矩阵 M,表示班级中学生之间的朋友关系。如果M[i][j] = 1, 阅读全文
posted @ 2019-04-25 15:07 你说你好 阅读(386) 评论(0) 推荐(0)
摘要:Problem I: 求极限 Description 小 z 学了一学期的高数了,最近他被一道求极限的题目卡死了,请你帮帮他!给定两个数 a,c。1<=a,c<=1e18。求下列式子的值。结果可能很大,请输出答案模 1e9+7 后的值。 小 z 学了一学期的高数了,最近他被一道求极限的题目卡死了,请 阅读全文
posted @ 2019-04-23 15:27 你说你好 阅读(255) 评论(0) 推荐(0)
摘要:题目: Problem D: MJJ玩磁铁 Description MJJ在河北的ACM圈子中可谓是小有名气,毕竟当初一个人挑起队秒天秒地秒一切。在训练赛上多次AK江湖传闻一天不A10题晚上就睡不着觉。正是这么刻苦这么努力的MJJ,收货了一大批女粉丝,但是MJJ除了ACM以外却只喜欢玩磁铁。MJJ的 阅读全文
posted @ 2019-04-22 19:40 你说你好 阅读(457) 评论(0) 推荐(0)
摘要:题目: 给定一个保存员工信息的数据结构,它包含了员工唯一的id,重要度 和 直系下属的id。 比如,员工1是员工2的领导,员工2是员工3的领导。他们相应的重要度为15, 10, 5。那么员工1的数据结构是[1, 15, [2]],员工2的数据结构是[2, 10, [3]],员工3的数据结构是[3, 阅读全文
posted @ 2019-04-19 15:47 你说你好 阅读(184) 评论(0) 推荐(0)
摘要:题目: 在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格; 值 1 代表新鲜橘子; 值 2 代表腐烂的橘子。 每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。 返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。 分析: 最近在 阅读全文
posted @ 2019-04-19 15:44 你说你好 阅读(657) 评论(0) 推荐(0)
摘要:题目: 有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中。 现在要求你戳破所有的气球。每当你戳破一个气球 i 时,你可以获得 nums[left] * nums[i] * nums[right] 个硬币。 这里的 left 和 right 代表和 i 相 阅读全文
posted @ 2019-04-11 21:57 你说你好 阅读(382) 评论(0) 推荐(0)
摘要:题目: 给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。​ 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天 阅读全文
posted @ 2019-04-07 14:15 你说你好 阅读(357) 评论(0) 推荐(0)
摘要:题目: 数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i](索引从0开始)。 每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。 您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。 阅读全文
posted @ 2019-04-04 21:10 你说你好 阅读(126) 评论(0) 推荐(0)
摘要:题目: 在计算机界中,我们总是追求用有限的资源获取最大的收益。 现在,假设你分别支配着 m 个 0 和 n 个 1。另外,还有一个仅包含 0 和 1 字符串的数组。 你的任务是使用给定的 m 个 0 和 n 个 1 ,找到能拼出存在于数组中的字符串的最大数量。每个 0 和 1 至多被使用一次。 注意 阅读全文
posted @ 2019-04-02 16:41 你说你好 阅读(287) 评论(0) 推荐(0)
摘要:题目: 在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。 分析: 在动态规划的过程中,判断当前位置是否为0,如果是就直接写入0,为1进行判断,如果左边和上边的数字不相等,当前位置就是较小的数字加一,如果相等,与左上数字比较,取较小的数字加一。 代码: 阅读全文
posted @ 2019-04-02 15:54 你说你好 阅读(195) 评论(0) 推荐(0)
摘要:题目: 给定一个二进制数组, 找到含有相同数量的 0 和 1 的最长连续子数组(的长度)。 分析: 我首先看到这个题目的时候想到的是可不可以用动态规划求解,后来发现由于他中间数字的变化并没有规律,你可以得到当前位置0和1的差值,但是无法规律得找到最远相同差值的位置,所以最后我失败了。 然后我用了第二 阅读全文
posted @ 2019-04-02 10:15 你说你好 阅读(224) 评论(0) 推荐(0)
摘要:题目: 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。 分析: 这道题在我半年前开始学算法的时候有写过,不过最后绝对是被虐哭了,主要原因就是无法解决当你向下遍历字符串的时候,遇到隔断后再将其消除不能和上一个连续的有效字串合并。 现在在学了一些算法有了基本的功底后, 阅读全文
posted @ 2019-03-31 12:25 你说你好 阅读(215) 评论(0) 推荐(0)
摘要:题目: 给定一个没有重复数字的序列,返回其所有可能的全排列。 分析: 题目给的很简单,首先这个序列是一个没有重复数字的序列,所以并不需要担心你排列出来的数字是否会有不同位置有相同数字的情况,这就减少了很多结果,避免了计算量。 并且由于不是选择最优解的题目,所以一定是用深度搜索将所有的情况全部都找出。 阅读全文
posted @ 2019-03-27 15:07 你说你好 阅读(176) 评论(0) 推荐(0)
摘要:题目: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。 分析: 阅读全文
posted @ 2019-03-21 08:37 你说你好 阅读(237) 评论(0) 推荐(0)
摘要:题目: 给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。 你找到的子数组应是最短的,请输出它的长度。 分析: 在我第一次看完这个题目的时候,我就觉得可以用O(n)的时间复杂度完成这个代码,首先他要求是连续的子数组,所以只要是有不符合要求的位置 阅读全文
posted @ 2019-03-20 09:23 你说你好 阅读(415) 评论(0) 推荐(0)