摘要: 编写一个函数,其作用是将输入的字符串反转过来。 示例 1: 输入: "hello" 输出: "olleh" 示例 2: 输入: "A man, a plan, a canal: Panama" 输出: "amanaP :lanac a ,nalp a ,nam A" class Solution: 阅读全文
posted @ 2018-08-24 23:21 丁壮 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方。 示例 1: 输入: 16 输出: true 示例 2: 输入: 5 输出: false 进阶: 你能不使用循环或者递归来完成本题吗? class Solution: def isPowerOfFour(self, n 阅读全文
posted @ 2018-08-24 23:20 丁壮 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 给定一个整数,写一个函数来判断它是否是 3 的幂次方。 示例 1: 输入: 27 输出: true 示例 2: 输入: 0 输出: false 示例 3: 输入: 9 输出: true 示例 4: 输入: 45 输出: false 进阶: 你能不使用循环或者递归来完成本题吗? 给定一个整数,写一个函 阅读全文
posted @ 2018-08-24 23:19 丁壮 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。 示例: 给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange() sumRange(0, 2) -> 1 sumRange(2, 5) -> -1 阅读全文
posted @ 2018-08-24 23:18 丁壮 阅读(580) 评论(0) 推荐(0) 编辑
摘要: 你和你的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。 你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。 示例: 输入: 4 输出: false 解释: 如果堆中有 阅读全文
posted @ 2018-08-24 23:17 丁壮 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 给定一种 pattern(模式) 和一个字符串 str ,判断 str 是否遵循相同的模式。 这里的遵循指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应模式。 示例1: 输入: pattern = "abba", str = "dog cat 阅读全文
posted @ 2018-08-24 23:16 丁壮 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。 假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。 你可以通过调用 bool 阅读全文
posted @ 2018-08-24 23:15 丁壮 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 class Solution: def moveZeroe 阅读全文
posted @ 2018-08-24 23:15 丁壮 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。 示例 1: 输入: [3,0,1] 输出: 2 示例 2: 输入: [9,6,4,2,3,5,7,0,1] 输出: 8 说明: 你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来 阅读全文
posted @ 2018-08-24 23:14 丁壮 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 编写一个程序判断给定的数是否为丑数。 丑数就是只包含质因数 2, 3, 5 的正整数。 示例 1: 示例 2: 示例 3: 说明: 阅读全文
posted @ 2018-08-24 23:13 丁壮 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 示例: 阅读全文
posted @ 2018-08-24 23:12 丁壮 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 给定一个二叉树,返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 输入: 1 / \ 2 3 \ 5 输出: ["1->2->5", "1->3"] 解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3 给定一个二叉树,返回所有从根节点到叶子节点的路径 阅读全文
posted @ 2018-08-24 23:11 丁壮 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。 示例 1: 输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s = "rat", t = "car" 输出: false 说明: 你可以假设字符串只包含小写字 阅读全文
posted @ 2018-08-24 02:07 丁壮 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。 现有一个链表 -- head = [4,5,1,9],它可以表示为: 4 -> 5 -> 1 -> 9 示例 1: 输入: head = [4,5,1,9], node = 5 输出: [4,1,9] 解释: 阅读全文
posted @ 2018-08-24 02:02 丁壮 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树: root = [6, 阅读全文
posted @ 2018-08-24 01:40 丁壮 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? # Definition for singly-linked list. # cla 阅读全文
posted @ 2018-08-24 01:27 丁壮 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。 示例: MyQueue queue = new MyQueue(); queue.push(1); 阅读全文
posted @ 2018-08-24 00:31 丁壮 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 给定一个整数n,判断它是否为2的次方幂。 方法:2,4,8都是2的n次幂 任何整数乘以2,都相当于向左移动了一位,而2的0次幂为1,所以2的n次幂就是1向左移动n位。这样,2的幂的特征就是二进制表示只有最高位为1,其他位均为0。二进制标下形式为: 10 100 1000 减1后与自身进行按位与,如果 阅读全文
posted @ 2018-08-24 00:23 丁壮 阅读(283) 评论(0) 推荐(1) 编辑