- 博客(116)
- 资源 (1)
- 收藏
- 关注
原创 709. 转换成小写字母
709. 转换成小写字母实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。示例 1:输入: “Hello”输出: “hello”示例 2:输入: “here”输出: “here”示例 3:输入: “LOVELY”输出: “lovely”分析: 判断是大写字母,加32。class S...
2018-11-30 22:47:50 196
原创 707. 设计链表
707. 设计链表设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第 index 个节点的值。如果索...
2018-11-30 22:39:49 266
原创 706. 设计哈希映射
706. 设计哈希映射不使用任何内建的哈希表库设计一个哈希映射具体地说,你的设计应该包含以下的功能put(key, value):向哈希映射中插入(键,值)的数值对。如果键对应的值已经存在,更新这个值。get(key):返回给定的键所对应的值,如果映射中不包含这个键,返回-1。remove(key):如果映射中存在这个键,删除这个数值对。示例:MyHashMap h...
2018-11-30 21:51:03 248
原创 解决报错 No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
解决报错 No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android报错的原因是NDK的toolchains文件夹中缺少mips64el-linux-android文件夹。我们上https://developer.android.com/ndk/downloads/...
2018-11-15 20:14:38 302
原创 1.4 买书问题
1.4 买书问题参考《编程之美–1.4 买书问题》问题描述:节假日时,书店会有促销活动。假设某系列书一共有5本,每本价格相同为8元。如果一次购买本系列多本不同的书可以享受折扣。折扣如下:本书折扣25%310%420%525%在每个订单中每本书绑定于一个折扣规则中,即已享受折扣的书不能再与其他书组成折扣。要求设计出算法计算读者所购买一批书...
2018-10-30 14:56:35 455
原创 1.3 一摞烙饼的排序
1.3 一摞烙饼的排序参考《编程之美–1.3 一摞烙饼的排序》问题描述:一摞乱序摆放的烙饼,每次只能抓取最上面几块烙饼并翻转,多次翻转后能够实现烙饼的从小到大(从上往下)的有序摆放。问题分析:这里我们使用回溯法解决这个问题。直接用回溯法效率是低下的,因此要进行剪枝。这里的剪枝条件是利用翻转次数的上界和下界完成的。上界:[4,2,1,5,3] -> [5,1,2,4,3] -&g...
2018-10-28 00:27:01 407
原创 1.2中国象棋将帅问题
1.2中国象棋将帅问题参考《编程之美–1.2 中国象棋将帅问题》问题描述:中国象棋中将帅均只能在九宫格内移动,象棋残局往往通过将帅的走位来翻盘,用A表示将,用B表示帅,若A、B不在同一纵线上则为合法,要求输出A、B所有合法的位置,兵棋在代码只能用一个字节来存储变量。问题分析:大体上解法是遍历A、B的位置,判断A、B位置是否满足要求,并输出。难点在于如何用一个字节存储A、B两个点的位置。...
2018-10-27 17:17:27 324
原创 1.1 使CPU占用曲线为正弦曲线
1.1 使CPU占用曲线为正弦曲线参考《编程之美–1.1 让CPU占用时间听你指挥》问题分析:这里的CPU占用曲线为Windows任务管理器中呈现的。在任务管理器器的一个刷新周期内,CPU忙(执行应用程序)的时间和刷新周期总时间的比率,就是CPU占用率。根据这个原理,我们可以通过在一段时间内调整CPU忙和闲的时间来使CPU占用曲线呈现所想要呈现的波形。忙:用循环来表示忙的停止时间应该用...
2018-10-27 00:07:08 629
原创 705. 设计哈希集合
705.设计哈希集合不使用任何内建的哈希表库设计一个哈希集合具体地说,你的设计应该包含以下的功能add(value):向哈希集合中插入一个值。contains(value) :返回哈希集合中是否存在这个值。remove(value):将给定值从哈希集合中删除。如果哈希集合中没有这个值,什么也不做。示例:MyHashSet hashSet = new MyHashSet();ha...
2018-10-01 09:11:30 183
原创 704. 二分查找
704.二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5...
2018-09-30 22:24:12 139
原创 703. 数据流中的第K大元素
703.数据流中的第K大元素设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含数据流中的初始元素。每次调用 KthLargest.add,返回当前数据流中第K大的元素。示例:int k = 3;int[] arr = [4,5,8,2];KthLa...
2018-09-29 20:45:18 728
原创 700. 二叉搜索树中的搜索
700.二叉搜索树中的搜索给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。例如,给定二叉搜索树: 4 / \ 2 7 / \1 3和值: 2你应该返回如下子树: 2 / \ 1 3在上述示例中,如果要找的值是 5,但因为没有节...
2018-09-29 19:55:08 126
原创 697. 数组的度
697.数组的度给定一个非空且只包含非负数的整数数组 nums, 数组的度的定义是指数组里任一元素出现频数的最大值。你的任务是找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。示例 1:输入: [1, 2, 2, 3, 1]输出: 2解释:输入数组的度是2,因为元素1和2的出现频数最大,均为2.连续子数组里面拥有相同度的有如下所示:[1, 2, 2, 3, 1],...
2018-09-29 19:36:36 516
原创 696. 计数二进制子串
696.计数二进制子串给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。示例 1 :输入: “00110011”输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。请注意,一些重复出现的子串要计算...
2018-09-28 20:52:42 560
原创 695. 岛屿的最大面积
695. 岛屿的最大面积给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,...
2018-09-28 19:41:48 311
原创 693. 交替位二进制数
693.交替位二进制数给定一个正整数,检查他是否为交替位二进制数:换句话说,就是他的二进制数相邻的两个位数永不相等。示例 1:输入: 5输出: True解释:5的二进制数是: 101示例 2:输入: 7输出: False解释:7的二进制数是: 111示例 3:输入: 11输出: False解释:11的二进制数是: 1011示例 4:输入: 10输...
2018-09-28 19:06:28 235
原创 690. 员工的重要性
690.员工的重要性给定一个保存员工信息的数据结构,它包含了员工唯一的id,重要度 和 直系下属的id。比如,员工1是员工2的领导,员工2是员工3的领导。他们相应的重要度为15, 10, 5。那么员工1的数据结构是[1, 15, [2]],员工2的数据结构是[2, 10, [3]],员工3的数据结构是[3, 5, []]。注意虽然员工3也是员工1的一个下属,但是由于并不是直系下属,因此没有体现...
2018-09-27 09:10:56 120
原创 687. 最长同值路径
687.最长同值路径给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值。 这条路径可以经过也可以不经过根节点。**注意:**两个节点之间的路径长度由它们之间的边数表示。示例 1:输入: 5 / \ 4 5 / \ \ 1 1 5输出:2示例 2:输入: ...
2018-09-26 22:00:42 732
原创 686. 重复叠加字符串匹配
686.重复叠加字符串匹配给定两个字符串 A 和 B, 寻找重复叠加字符串A的最小次数,使得字符串B成为叠加后的字符串A的子串,如果不存在则返回 -1。举个例子,A = “abcd”,B = “cdabcdab”。答案为 3, 因为 A 重复叠加三遍后为 “abcdabcdabcd”,此时 B 是其子串;A 重复叠加两遍后为"abcdabcd",B 并不是其子串。注意:A 与 B 字符串...
2018-09-26 19:54:02 365
原创 682. 棒球比赛
682.棒球比赛你现在是棒球比赛记录员。给定一个字符串列表,每个字符串可以是以下四种类型之一:1.整数(一轮的得分):直接表示您在本轮中获得的积分数。2. “+”(一轮的得分):表示本轮获得的得分是前两轮有效 回合得分的总和。3. “D”(一轮的得分):表示本轮获得的得分是前一轮有效 回合得分的两倍。4. “C”(一个操作,这不是一个回合的分数):表示您获得的最后一个有效 回合的分数是...
2018-09-26 17:35:56 278
原创 680. 验证回文字符串 Ⅱ
680.验证回文字符串 Ⅱ给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: “aba”输出: True示例 2:输入: “abca”输出: True解释: 你可以删除c字符。注意:字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。分析: 使用双指针,在第一个不相等的位置略过左边或右边的一个字符,用一个函数判断s从...
2018-09-26 16:29:53 387
原创 674. 最长连续递增序列
674.最长连续递增序列给定一个未经排序的整数数组,找到最长且连续的的递增序列。示例 1:输入: [1,3,5,4,7]输出: 3解释: 最长连续递增序列是 [1,3,5], 长度为3。尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为5和7在原数组里被4隔开。示例 2:输入: [2,2,2,2,2]输出: 1解释: 最长连续递增序列是 [2], 长度为1...
2018-09-25 23:58:32 257
原创 671. 二叉树中第二小的节点
671.二叉树中第二小的节点给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为 2 或 0。如果一个节点有两个子节点的话,那么这个节点的值不大于它的子节点的值。给出这样的一个二叉树,你需要输出所有节点中的第二小的值。如果第二小的值不存在的话,输出 -1 。示例 1:输入: 2 / \2 5 / \ 5 7输出: 5说明: 最小的值是 ...
2018-09-25 23:46:45 197
原创 669. 修剪二叉搜索树
669.修剪二叉搜索树给定一个二叉搜索树,同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>=L) 。你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。示例 1:输入: 1 / \0 2L = 1R = 2输出: 1 \ 2示例 2:输入: 3 / \0 4 \ ...
2018-09-25 23:29:55 281
原创 665. 非递减数列
665.非递减数列给定一个长度为 n 的整数数组,你的任务是判断在最多改变 1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的: 对于数组中所有的 i (1 <= i < n),满足 array[i] <= array[i + 1]。示例 1:输入: [4,2,3]输出: True解释: 你可以通过把第一个4变成1来使得它成为一个非递减...
2018-09-25 22:58:26 157
原创 661. 图片平滑器
661.图片平滑器包含整数的二维矩阵 M 表示一个图片的灰度。你需要设计一个平滑器来让每一个单元的灰度成为平均灰度 (向下舍入) ,平均灰度的计算是周围的8个单元和它本身的值求平均,如果周围的单元格不足八个,则尽可能多的利用它们。示例 1:输入:[[1,1,1],[1,0,1],[1,1,1]]输出:[[0, 0, 0],[0, 0, 0],[0, 0, 0]]解释:对于...
2018-09-25 21:41:32 193
原创 657. 机器人能否返回原点
657.机器人能否返回原点在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束。移动顺序由字符串表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有 R(右),L(左),U(上)和 D(下)。如果机器人在完成所有动作后返回原点,则返回 true。否则,返回 false。**注意:**机器人“面朝”的方向...
2018-09-25 20:05:26 386
原创 653. 两数之和 IV - 输入 BST
653.两数之和 IV - 输入 BST给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。案例 1:输入: 5 / \ 3 6 / \ \2 4 7Target = 9输出: True案例 2:输入: 5 / \ 3 6 / \ \2 4 7T...
2018-09-25 19:52:06 82
原创 645. 错误的集合
645.错误的集合集合 S 包含从1到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个元素复制了成了集合里面的另外一个元素的值,导致集合丢失了一个整数并且有一个元素重复。给定一个数组 nums 代表了集合 S 发生错误后的结果。你的任务是首先寻找到重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。示例 1:输入: nums = [1,2,2,4]输出: [2,3]注...
2018-09-25 19:22:16 194
原创 643. 子数组最大平均数 I
643.子数组最大平均数 I给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。示例 1:输入: [1,12,-5,-6,50,3], k = 4输出: 12.75解释: 最大平均数 (12-5-6+50)/4 = 51/4 = 12.75注意:1 <= k <= n <= 30,000。所给数据范围 [-10,000,10,00...
2018-09-25 18:55:58 217
原创 641. 设计循环双端队列
641.设计循环双端队列设计实现双端队列。你的实现需要支持以下操作:MyCircularDeque(k):构造函数,双端队列的大小为k。insertFront():将一个元素添加到双端队列头部。如果操作成功返回 true。insertLast():将一个元素添加到双端队列尾部。如果操作成功返回 true。deleteFront():从双端队列头部删除一个元素。 如果操作成功返回 tr...
2018-09-25 00:24:12 597
原创 637. 二叉树的层平均值
637.二叉树的层平均值给定一个非空二叉树, 返回一个由每层节点平均值组成的数组.示例 1:输入: 3 / \ 9 20 / \15 7输出: [3, 14.5, 11]解释:第0层的平均值是 3, 第1层是 14.5, 第2层是 11. 因此返回 [3, 14.5, 11].注意:节点值的范围在32位有符号整数范围内。分析: 用广度优先搜...
2018-09-24 23:10:40 117
原创 622. 设计循环队列
622.设计循环队列设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作...
2018-09-22 21:51:53 198
原创 617. 合并二叉树
617.合并二叉树给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例 1:输入:Tree 1 Tree 2 1 ...
2018-09-22 21:35:58 232
原创 606. 根据二叉树创建字符串
606.根据二叉树创建字符串你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。空节点则用一对空括号 “()” 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。示例 1:输入: 二叉树: [1,2,3,4] 1 / \ 2 3/ 4 输出: “1(2(4))(3)”解释: 原本将是“1(...
2018-09-22 21:26:59 240
原创 605. 种花问题
605.种花问题假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数 n 。能否在不打破种植规则的情况下种入 n 朵花?能则返回True,不能则返回False。示例 1:输入: flowerbed = [1,0,0,0,1], n ...
2018-09-22 21:07:53 145
原创 599. 两个列表的最小索引总和
599.两个列表的最小索引总和假设Andy和Doris想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅。 如果答案不止一个,则输出所有答案并且不考虑顺序。 你可以假设总是存在一个答案。示例 1:输入:[“Shogun”, “Tapioca Express”, “Burger King”, “KF...
2018-09-22 20:35:17 97
原创 598. 范围求和 II
598.范围求和 II在执行给定的一系列操作后,你需要返回矩阵中含有最大整数的元素个数。示例 1:输入:m = 3, n = 3operations = [[2,2],[3,3]]输出: 4解释:初始状态, M =[[0, 0, 0],[0, 0, 0],[0, 0, 0]]执行完操作 [2,2] 后, M =[[1, 1, 0],[1, 1, 0],[0, 0, ...
2018-09-22 19:14:43 242
原创 628. 三个数的最大乘积
628.三个数的最大乘积给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。示例 1:输入: [1,2,3]输出: 6示例 2:输入: [1,2,3,4]输出: 24注意:给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。分析: 实际上,最大乘积不...
2018-09-22 14:30:41 294
原创 633. 平方数之和
633.平方数之和给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c。示例1:输入: 5输出: True解释: 1 * 1 + 2 * 2 = 5示例2:输入: 3输出: False分析: 用左右两个指针,左指针从0开始向右,右指针从c的开平方数开始向左,若平方和小于c左指针移动,若大于右指针移动,等于则返回。class Solu...
2018-09-22 14:19:38 911
DeepMind 关系型深度强化学习 Relational Deep Reinforcement Learning
2019-04-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人