摘要:
题意: 在显示着数字的坏计算器上,我们可以执行以下两种操作: 双倍(Double):将显示屏上的数字乘 2; 递减(Decrement):将显示屏上的数字减 1 。 最初,计算器显示数字 X。 返回显示数字 Y 所需的最小操作数 示例 1: 输入:X = 2, Y = 3 输出:2 解释:先进行双倍 阅读全文
摘要:
题意: 给你一个正整数数组 nums,你需要从中任选一些子集,然后将子集中每一个数乘以一个 任意整数,并求出他们的和。 假如该和结果为 1,那么原数组就是一个「好数组」,则返回 True;否则请返回 False。 示例 1: 输入:nums = [12,5,7,23] 输出:true 解释:挑选数字 阅读全文
摘要:
题意: 有 N 堆石头排成一排,第 i 堆中有 stones[i] 块石头。 每次移动(move)需要将连续的 K 堆石头合并为一堆,而这个移动的成本为这 K 堆石头的总数。 找出把所有石头合并成一堆的最低成本。如果不可能,返回 -1 。 示例 1: 示例 2: 示例 3: 提示: 1 <= sto 阅读全文
摘要:
题意: 给出数字 N,返回由若干 "0" 和 "1"组成的字符串,该字符串为 N 的负二进制(base -2)表示。 除非字符串就是 "0",否则返回的字符串中不能含有前导零。 示例 1: 输入:2 输出:"110" 解释:(-2) ^ 2 + (-2) ^ 1 = 2 示例 2: 输入:3 输出: 阅读全文
摘要:
题意: 你将会获得一系列视频片段,这些片段来自于一项持续时长为 T 秒的体育赛事。这些片段可能有所重叠,也可能长度不一。 视频片段 clips[i] 都用区间进行表示:开始于 clips[i][0] 并于 clips[i][1] 结束。我们甚至可以对这些片段自由地再剪辑,例如片段 [0, 7] 可以 阅读全文
摘要:
题意: 你是一位施工队的工长,根据设计师的要求准备为一套设计风格独特的房子进行室内装修。 房子的客厅大小为 n x m,为保持极简的风格,需要使用尽可能少的 正方形 瓷砖来铺盖地面。 假设正方形瓷砖的规格不限,边长都是整数。 请你帮设计师计算一下,最少需要用到多少块方形瓷砖? 示例一: 示例二: 示 阅读全文
摘要:
题意:求最长等差序列的长度,数组长度是[0,2000],数值范围是[0,10000]。 思路:简单DP吧。dp[i][j]表示的是以第i个数结尾,差是j的最大长度。 dp[i][A[i] - A[j]] = max(dp[i][A[i] - A[j]],dp[j][A[i]-A[j]]+1); 1 阅读全文
摘要:
基本的操作 1.定义(即定义结点) next是表示每层有多少种类的数,如果只是小写字母,则26即可,若改为大小写字母,则是52,若再加上数字,则是62了,这里根据题意来确定。 cnt可以表示一个字典树到此有多少相同前缀的数目,这里根据需要应当学会自由变化。 1 struct node{ 2 int 阅读全文
摘要:
题意: 在一个 10^6 x 10^6 的网格中,每个网格块的坐标为 (x, y),其中 0 <= x, y < 10^6。 我们从源方格 source 开始出发,意图赶往目标方格 target。每次移动,我们都可以走到网格中在四个方向上相邻的方格,只要该方格不在给出的封锁列表 blocked 上。 阅读全文
摘要:
题意: 在一个长度无限的数轴上,第 i 颗石子的位置为 stones[i]。如果一颗石子的位置最小/最大,那么该石子被称作端点石子。 每个回合,你可以将一颗端点石子拿起并移动到一个未占用的位置,使得该石子不再是一颗端点石子。 值得注意的是,如果石子像 stones = [1,2,5] 这样,你将无法 阅读全文