随笔分类 -  算法__ACM算法

摘要:圆圈中最后剩下的数字 0,1,,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。 例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。示例 1:输 阅读全文
posted @ 2020-05-24 17:53 我只是一个码农 阅读(172) 评论(0) 推荐(0)
摘要:202.快乐数 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1, 也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 True ;不 阅读全文
posted @ 2020-05-07 15:01 我只是一个码农 阅读(196) 评论(0) 推荐(0)
摘要:搜索旋转排序数组 假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。 你的算法时间复 阅读全文
posted @ 2020-04-27 12:39 我只是一个码农 阅读(245) 评论(0) 推荐(0)
摘要:面试题51. 数组中的逆序对 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 示例 1: 输入: [7,5,6,4] 输出: 5 限制: 0 <= 数组长度 <= 50000 归并排序简介: 归并排序(MERGE-SORT 阅读全文
posted @ 2020-04-24 21:00 我只是一个码农 阅读(442) 评论(0) 推荐(0)
摘要:排序数组 给定一个整数数组 nums,将该数组升序排列。 示例 1: 输入:[5,2,3,1] 输出:[1,2,3,5] 示例 2: 输入:[5,1,1,2,0,0] 输出:[0,0,1,1,2,5] 提示: 1 <= A.length <= 10000 -50000 <= A[i] <= 5000 阅读全文
posted @ 2020-03-21 09:46 我只是一个码农 阅读(1540) 评论(2) 推荐(0)
摘要:题目描述 如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零? 5650 4542 3554 473 946 4114 3871 9073 90 4329 2758 7949 6113 5659 5245 7432 3051 4434 6704 3594 9937 1173 68 阅读全文
posted @ 2020-02-20 16:06 我只是一个码农 阅读(840) 评论(0) 推荐(0)
摘要:题目描述 X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色。 X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去。 如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙。 *WWWBBB 其中,W字母表示白色青蛙,B表示黑色青蛙,*表示空杯子。 X星的青蛙很有些癖好, 阅读全文
posted @ 2020-02-19 03:01 我只是一个码农 阅读(422) 评论(0) 推荐(0)
摘要:题目描述:区域和检索-数组可修改 给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。 update(i, val) 函数可以通过将下标为 i 的数值更新为 val,从而对数列进行修改。 示例: Given nums = [1, 3, 5] 阅读全文
posted @ 2020-02-12 16:32 我只是一个码农 阅读(202) 评论(0) 推荐(0)
摘要:颜色分类 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意:不能使用代码库中的排序函数来解决这道题。 示例: 输入: [2,0,2,1,1,0] 阅读全文
posted @ 2020-02-09 15:45 我只是一个码农 阅读(598) 评论(0) 推荐(0)
摘要:题目描述 你玩过华容道的游戏吗?这是个类似的,但更简单的游戏。看下面 3 x 2 的格子 + + + + | A | * | * | + + + + | B | | * | + + + + 在其中放5张牌,其中A代表关羽,B代表张飞,* 代表士兵。还有一个格子是空着的。你可以把一张牌移动到相邻的空格 阅读全文
posted @ 2020-02-08 13:47 我只是一个码农 阅读(675) 评论(0) 推荐(0)
摘要:题目描述 这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。 比如: 6+8/3+952/714 就是一种解法,5+3/1+972/486 是另一种解法。 这个算式一共有多少种解法? 输出 输出一个整数表示答案 分析 这是一道典型的全排列算法的应用。将1~9组成的序列全排列出来,再来挑选符 阅读全文
posted @ 2020-02-05 15:33 我只是一个码农 阅读(731) 评论(0) 推荐(0)
摘要:题目描述 如下图, 有12张连在一起的12生肖的邮票。现在你要从中剪下5张来,要求必须是连着的。(仅仅连接一个角不算相连) 比如,下面两张图中,粉红色所示部分就是合格的剪取。 请你计算,一共有多少种不同的剪取方法。 输出 请填写表示方案数目的整数。 分析1 使用开锁解锁机制、通过DFS一边搜索一边计 阅读全文
posted @ 2020-02-04 23:11 我只是一个码农 阅读(309) 评论(0) 推荐(0)
摘要:此题方法多种,我用规范的DFS来求解 题目:方格填数 如下的10个格子,填入0~9的数字。要求:连续的两个数字不能相邻。 (左右、上下、对角都算相邻)一共有多少种可能的填数方案? 输出 请填写表示方案数目的整数。 1 #include <iostream> 2 #include <vector> 3 阅读全文
posted @ 2020-02-04 02:42 我只是一个码农 阅读(342) 评论(0) 推荐(0)
摘要:最大整除子集 给出一个由无重复的正整数组成的集合,找出其中最大的整除子集,子集中任意一对 (Si,Sj) 都要满足:Si % Sj = 0 或 Sj % Si = 0。 如果有多个目标子集,返回其中任何一个均可。 示例 1: 输入: [1,2,3]输出: [1,2] (当然, [1,3] 也正确) 阅读全文
posted @ 2020-02-03 21:13 我只是一个码农 阅读(278) 评论(0) 推荐(0)
摘要:题目描述 Alice这次决定去股市里当一波韭菜。 她希望你设计一个算法,在满足以下3个约束条件下,计算出最大利润。 1、 你可以多次买卖一支股票,但是对于每支股票,你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 2、 因为周转资金需要时间,Alice在买入股票前(第一次除外)需要等一 阅读全文
posted @ 2020-02-03 18:33 我只是一个码农 阅读(418) 评论(0) 推荐(0)
摘要:给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。 示例 1: 输入:11110110101100000000 输出: 1示例 2: 输入:110001100000100 阅读全文
posted @ 2019-12-26 20:06 我只是一个码农 阅读(300) 评论(0) 推荐(0)
摘要:给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度。“太平洋”处于大陆的左边界和上边界,而“大西洋”处于大陆的右边界和下边界。 规定水流只能按照上、下、左、右四个方向流动,且只能从高到低或者在同等高度上流动。 请找出那些水流既可以流动到“太平洋”,又能流动到“大西洋”的陆地单元的坐 阅读全文
posted @ 2019-12-26 20:00 我只是一个码农 阅读(451) 评论(0) 推荐(0)
摘要:有 N 个网络节点,标记为 1 到 N。 给定一个列表 times,表示信号经过有向边的传递时间。 times[i] = (u, v, w),其中 u 是源节点,v 是目标节点, w 是一个信号从源节点传递到目标节点的时间。 现在,我们向当前的节点 K 发送了一个信号。需要多久才能使所有节点都收到信 阅读全文
posted @ 2019-12-15 16:07 我只是一个码农 阅读(452) 评论(0) 推荐(0)
摘要:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。 你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: [1,2,3,4,5]输出: 4 解释: 在第 2 天 阅读全文
posted @ 2019-10-31 14:03 我只是一个码农 阅读(144) 评论(0) 推荐(0)