摘要:
题目421题 数组中两个数的最大异或值 给定一个非空数组,数组中元素为 a0, a1, a2, … , an-1,其中 0 ≤ ai < 231 。 找到 ai 和aj 最大的异或 (XOR) 运算结果,其中0 ≤ i, j < n 。 你能在O(n)的时间解决这个问题吗? 示例: 输入: [3, 阅读全文
摘要:
题目396题 旋转函数 给定一个长度为 n 的整数数组 A 。 假设 Bk 是数组 A 顺时针旋转 k 个位置后的数组,我们定义 A 的“旋转函数” F 为: F(k) = 0 * Bk[0] + 1 * Bk[1] + ... + (n-1) * Bk[n-1]。 计算F(0), F(1), .. 阅读全文
摘要:
题目373题 查找和最小的k对数字 给定两个以升序排列的整形数组 nums1 和 nums2, 以及一个整数 k。 定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2。 找到和最小的 k 对数字 (u1,v1), (u2,v2) ... (uk,vk)。 示例 1: 阅读全文
摘要:
题目307题 区域和检索 给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。 update(i, val) 函数可以通过将下标为 i 的数值更新为 val,从而对数列进行修改。 思路 线段树: 实现 class Node: def __i 阅读全文
摘要:
题目237题 删除链表里的节点 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。 思路 诡异的题目 实现 class Solution: def deleteNode(self, node): """ :type node: ListNode :r 阅读全文
摘要:
题目209题 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。 示例: 输入:s = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是 阅读全文
摘要:
题目166 分数到小数 给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以字符串形式返回小数。 如果小数部分为循环小数,则将循环的部分括在括号内。 思路 长除法,考虑负数/循环小数/整数等多种情况 实现 import collections class Solu 阅读全文
摘要:
题目131 分割回文串 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。 返回 s 所有可能的分割方案。 示例: 输入: "aab"输出:[ ["aa","b"], ["a","a","b"]] 思路 递归的方式:若当前字符串是回文串则添加,左右指针移动到此回文串后。不管现在是否为 阅读全文
摘要:
题目106题 从中序与后序遍历序列构造二叉树 根据一棵树的中序遍历与后序遍历构造二叉树。 注意:你可以假设树中没有重复的元素。 例如,给出 中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树: 3 / \ 9 20 / 阅读全文
摘要:
题目100题 相同的树 给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3] 输出: true 思路 深度优先遍历: 当两个二叉树都为空,则两 阅读全文