day17_155_最小栈
题目设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。 pop() —— 删除栈顶的元素。 top() —— 获取栈顶元素。 getMin() —— 检索栈中的最小元素。 示例: 12345678910111213141516输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,null,-3,null,0,-2]解释:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.getMin(); --> 返回 -3.min...
day16_150_逆波兰表达式
题目根据逆波兰表示法,求表达式的值。 有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 说明: 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。 示例 1: 123输入: ["2", "1", "+", "3", "*"]输出: 9解释: ((2 + 1) * 3) = 9 示例 2: 123输入: ["4", "13", "5", "/", "+"]输出: 6解释: (4 + (13 / 5)) = 6 示例 3: 12345678910输入: ["10", "6", "9", "3", "+", "-11", "*", &q...
day15_栈_20_ 有效的括号
题目给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 12输入: "()"输出: true 示例 2: 12输入: "()[]{}"输出: true 示例 3: 12输入: "(]"输出: false 示例 4: 12输入: "([)]"输出: false 示例 5: 12输入: "{[]}"输出: true Related Topics 栈 字符串 解答12345678910111213141516171819202122232425262728293031323334class Solution { public ...
day14_268_缺失数字
题目给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。 示例 1: 12输入: [3,0,1]输出: 2 示例 2: 12输入: [9,6,4,2,3,5,7,0,1]输出: 8 说明:你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现? Related Topics 位运算 数组 数学 思路这里就说下位运算的 由于异或运算(XOR)满足结合律,并且对一个数进行两次完全相同的异或运算会得到原来的数,因此我们可以通过异或运算找到缺失的数字。 算法 我们知道数组中有 n 个数,并且缺失的数在 [0..n] 中。因此我们可以先得到 [0..n] 的异或值,再将结果对数组中的每一个数进行一次异或运算。未缺失的数在 [0..n] 和数组中各出现一次,因此异或后得到 0。而缺失的数字只在 [0..n] 中出现了一次,在数组中没有出现,因此最终的异或结果即为这个缺失的数字。 在编写代码时,由于 [0..n] 恰好是这个数组的下标加上 n,因此可以用一次循环完成所有的异或运算,例如下面这个例子: 下标 | 0 | ...
day13_461_汉明距离
题目两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 给出两个整数 x 和 y,计算它们之间的汉明距离。 注意:0 ≤ x, y < 231. 示例: 12345678910输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。 Related Topics 位运算 思路 计算 x 和 y 之间的汉明距离,可以先计算 x XOR y,然后统计结果中等于 1 的位数。 解答123456789101112131415161718192021222324252627282930313233343536373839//两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 //// 给出两个整数 x 和 y,计算它们之间的汉明距离。 //// 注意: //0 ≤ x, y < 231. //// 示例: //// //输入: x = 1, y = 4////输出: 2////解释://1 (0 0 0 1)//4 (0...
谷歌搜索引擎高级搜索命令大全表格总结(完整示例及说明)
谷歌搜索引擎高级搜索、命令大全表格总结(完整示例及说明) 1.搜索引擎搜索思路(1) 搜索引擎解决思路:取词,优化,反推,转换。 要学会关键词联想、简化,还要有一个大的思路最重要的是刨根问底的精神,找到最终答案的毅力。 (2) 每次搜索时都是有意识的、层层推进的而不是盲目的:一个完整的“高级信息搜索”过程一定是要包含如下8个完整的步骤: 分析问题、选择合适的检索工具、提取检索词、构造检索式、进行检索、筛选检索结果、调整检索策略、反思总结。 (3) 掌握了工具和关键字后,要知道二者如何配合使用:比如需要查找一份政府文件,如果知道准确的文件名,就可以加半角引号进行精确检索; 但如果不知道准确名称,就可以用site语法只在政府网站内用相关关键字查询,而不是在全网大海捞针。 2.搜索引擎命令大全表格总结 序号 语法 语法说明 示例 示例说明 1 + 同AND,搜索包含多个关键词的结果 搜索 + 引擎 搜索包含【搜索】和【引擎】两个词的页面 2 OR 或者 搜索 OR 引擎 搜索包含【搜索】或【引擎】两个词的页面 3 - 减号,不包含减号后面词的页面 搜索引擎 -百度 搜...
day12_190_颠倒二进制位
题目颠倒给定的 32 位无符号整数的二进制位。 示例 1: 1234输入: 00000010100101000001111010011100输出: 00111001011110000010100101000000解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596, 因此返回 964176192,其二进制表示形式为 00111001011110000010100101000000。 示例 2: 1234输入:11111111111111111111111111111101输出:10111111111111111111111111111111解释:输入的二进制串 11111111111111111111111111111101 表示无符号整数 4294967293, 因此返回 3221225471 其二进制表示形式为 10101111110010110010011101101001。 提示: 请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有...
day11_234_回文链表
题目请判断一个链表是否为回文链表。 示例 1: 12输入: 1->2输出: false 示例 2: 12输入: 1->2->2->1输出: true 进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? Related Topics 链表 双指针 解答123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475//请判断一个链表是否为回文链表。 //// 示例 1: //// 输入: 1->2//输出: false //// 示例 2: //// 输入: 1->2->2->1//输出: true// //// 进阶: //你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? // Related Topics 链表 双指针//leetcode submit region beg...
day10_206_反转链表
题目反转一个单链表。 示例: 12输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL 进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题? Related Topics 链表 解答12345678910111213141516171819202122232425262728293031323334353637//反转一个单链表。 //// 示例: //// 输入: 1->2->3->4->5->NULL//输出: 5->4->3->2->1->NULL //// 进阶: //你可以迭代或递归地反转链表。你能否用两种方法解决这道题? // Related Topics 链表//leetcode submit region begin(Prohibit modification and deletion)/** * Definition for singly-linked list. * public class...
day9_21_合并两个有序链表
题目将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 12输入:1->2->4, 1->3->4输出:1->1->2->3->4->4 Related Topics 链表 解答123456789101112131415161718192021222324252627282930313233343536373839404142//将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 //// 示例: //// 输入:1->2->4, 1->3->4//输出:1->1->2->3->4->4// // Related Topics 链表//leetcode submit region begin(Prohibit modification and deletion)/** * Definition for singly-linked list. * public class List...