随笔分类 -  算法OJ - PAT 力扣 洛谷

摘要:快乐数 编写一个算法来判断一个数 是不是快乐数。 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。 如果 是快乐数就返回 ;不是,则返回 。 示例: 题 阅读全文
posted @ 2020-04-30 16:31 CoderZjz 阅读(251) 评论(0) 推荐(0)
摘要:面试题56 I. 数组中数字出现的次数 一个整型数组 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 示例 1: 示例 2: 限制: `2 using namespace std; int main() { vector 阅读全文
posted @ 2020-04-28 16:29 CoderZjz 阅读(176) 评论(0) 推荐(0)
摘要:33. 搜索旋转排序数组 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 可能变为 )。 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 。 你可以假设数组中不存在重复的元素。 你的算法时间复杂度必须是 O (log n ) 级别。 示例 1: 示例 阅读全文
posted @ 2020-04-27 16:24 CoderZjz 阅读(129) 评论(0) 推荐(0)
摘要:全排列 给定一个 没有重复 数字的序列,返回其所有可能的全排列。 示例: 题解思路 官方题解的dfs回溯 暴力都太冗长了 既然C++ STL有全排列的函数 能省则省 next_permutation()大家应该都不会陌生 另一篇STL的博文也有提及 阅读全文
posted @ 2020-04-25 17:00 CoderZjz 阅读(197) 评论(0) 推荐(0)
摘要:在数组中的两个数字,如果 前面一个数字大于后面 的数字,则这两个数字组成一个 逆序对 。输入一个数组,求出这个数组中的逆序对的总数。 示例 1: 输入: [7,5,6,4] 输出: 5 限制: 0 困难 实际上是利用==归并排序==的性质 推荐直接看官方题解视频的思路 阅读全文
posted @ 2020-04-24 17:33 CoderZjz 阅读(390) 评论(0) 推荐(0)
摘要:199. 二叉树的右视图 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例: 代码二 阅读全文
posted @ 2020-04-22 16:04 CoderZjz 阅读(163) 评论(0) 推荐(0)
摘要:洛谷的题目实在是裹脚布 还编的像童话 这题要 “使得获得奖赏最多的大臣,所获奖赏尽可能的少。” 看了半天都觉得不像人话 总算理解后 简单说题目的意思就是 根据既定的运算规则 如何排序能让数值最小(可以直接看题解 下面的题目真的不想多看) 因为涉及高精 就用python练练手 也是因为python做高 阅读全文
posted @ 2020-04-21 16:32 CoderZjz 阅读(664) 评论(0) 推荐(0)
摘要:🔒 统计「优美子数组」 给你一个整数数组 和一个整数 。 如果某个 连续 子数组中恰好有 个奇数数字,我们就认为这个子数组是「 优美子数组 」。 请返回这个数组中「优美子数组」的数目。 示例 1 2 3 提示 `1 利用滑动窗口 有点像计算机网络里传输数据滑动窗口协议 结合代码注释还是比较好理解 阅读全文
posted @ 2020-04-21 15:35 CoderZjz 阅读(223) 评论(0) 推荐(0)
摘要:岛屿数量 给你一个由 (陆地)和 (水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包围。 示例 1: 示例 2: 题解 利用dfs逐个标记 阅读全文
posted @ 2020-04-20 15:33 CoderZjz 阅读(188) 评论(0) 推荐(0)
摘要:盛最多水的容器 给你 n 个非负整数 a 1, a 2,..., a n,每个数代表坐标中的一个点 ( i , ai ) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 ( i , ai ) 和 ( i , 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明: 阅读全文
posted @ 2020-04-18 19:45 CoderZjz 阅读(141) 评论(0) 推荐(0)
摘要:1009 说反话 (20分) 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没 阅读全文
posted @ 2020-04-18 16:54 CoderZjz 阅读(246) 评论(0) 推荐(0)
摘要:跳跃游戏 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到 阅读全文
posted @ 2020-04-17 19:23 CoderZjz 阅读(240) 评论(0) 推荐(0)
摘要:56. 合并区间 给出一个区间的集合,请合并所有重叠的区间。 示例 1: 输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6]. 示例 2: 输入: [[1, 阅读全文
posted @ 2020-04-16 23:30 CoderZjz 阅读(251) 评论(0) 推荐(0)
摘要:力扣上也有一道类似的题 几乎是一样 输出不同 → "力扣leetcode 435. 无重叠区间 " 区间贪心是比较经典的 就拿洛谷P1803来举例 题目大意 n个比赛 [开始时间,结束时间] 问一个人最多能参加几个(不能同时参加两个且必须有始有终) 题解 首先考虑最简单的情况,如果区间L1被区间L2 阅读全文
posted @ 2020-04-11 21:03 CoderZjz 阅读(214) 评论(0) 推荐(0)
摘要:非常经典的区间贪心思想 详见博文: "贪心思想之区间贪心" 本题给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。 __注意:__ 可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。 __示例 1:__ 输入: [ [1,2 阅读全文
posted @ 2020-04-11 20:37 CoderZjz 阅读(357) 评论(0) 推荐(0)
摘要:一直觉得洛谷的背景故事很....直接题解吧 阅读全文
posted @ 2020-04-08 00:07 CoderZjz 阅读(177) 评论(0) 推荐(0)