454. 四数相加 II
题目:123给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到 228 - 1 之间,最终结果不会超过 231 - 1 。
示例:12345678910111213输入:A = [ 1, 2]B = [-2,-1]C = [-1, 2]D = [ 0, 2]输出:2解释:两个元组如下:1. (0, 0, 0, 1) -> A[0] + B[0] + C[0] + D[1] = 1 + (-2) + (-1) + 2 = 02. (1, 1, 0, 0) -> A[1] + B[1] + C[0] + D[0] = 2 + (-1) + (-1) + 0 = 0
分析:首先从最简单的方法入手,四层循环,然后在循环内可以进一步利用一些数组是有 ...
222. 完全二叉树的节点个数
题目:1234给出一个完全二叉树,求出该树的节点个数。说明:完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。
示例:123456789输入: 1 / \ 2 3 / \ /4 5 6输出: 6
分析:1可以使用深度优先遍历所有节点。
code:123456789101112131415161718/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: int coun ...
452. 用最少数量的箭引爆气球
题目12345在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xend,则该气球会被引爆。可以射出的弓箭的数量没有限制。 弓箭一旦被射出之后,可以无限地前进。我们想找到使得所有气球全部被引爆,所需的弓箭的最小数量。给你一个数组 points ,其中 points [i] = [xstart,xend] ,返回引爆所有气球所必须射出的最小弓箭数。
示例1123输入:points = [[10,16],[2,8],[1,6],[7,12]]输出:2解释:对于该样例,x = 6 可以射爆 [2,8],[1,6] 两个气球,以及 x = 11 射爆另外两个气球
示例212输入:points = [[1,2],[3,4],[5,6],[7,8]]输出:4
示例312输入:p ...
26. 删除排序数组中的重复项
题目给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
示例112345给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。
示例212345给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。你不需要考虑数组中超出新长度后面的元素。
Code零向量需要注意,判断出与之前相同的项标记一下,赋予很大的值,并记录不同值的个数。到后面再排序。
1234567891011121314151617181920class Solution {public: int removeDuplicates(vector<int>& nums) { i ...
922. 按奇偶排序数组 II
题目给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。
对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。
你可以返回任何满足上述条件的数组作为答案。
示例1:123输入:[4,2,5,7]输出:[4,5,2,7]解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。
提示:
2 <= A.length <= 20000
A.length % 2 == 0
0 <= A[i] <= 1000
思路分析:对原数组进行排序操作,并借助另一个数组,首先解决偶数排序问题,便历排序后的数组,筛选出偶数值项,并把值赋值给另一个数组的偶数项,然后对奇数进行同样操作。
code官方代码块:
1234567891011121314151617181920212223class Solution {public: vector<int> sortArrayByParityII(vector<int>& A) { int ...
最长公共前缀
题目编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例1:12输入: ["flower","flow","flight"]输出: "fl"
示例2:123输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。
说明所有输入只包含小写字母a-z。
思路只需要将字符串数组进行排序,找到第一个字符串与最后一个字符串,比较他们公共部分即可。
code123456789101112131415161718class Solution {public: string longestCommonPrefix(vector<string>& strs) { string tmp=""; if(strs.size()== ...
31.Next Permutation
QuestionImplement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers.
If such an arrangement is not possible, it must rearrange it as the lowest possible order (i.e., sorted in ascending order).
The replacement must be in place and use only constant extra memory.
Example 1:12Input: nums = [1,2,3]Output: [1,3,2]
Example 2:12Input: nums = [3,2,1]Output: [1,2,3]
Example 3:12Input: nums = [1,1,5]Output: [1,5,1]
Example 4:12Inpu ...
MyRocks
引用自:温正湖 https://zhuanlan.zhihu.com/p/45652076 本文主要介绍什么是MyRocks,包括其功能特性,重点讲解MyRocks相比InnoDB的优势,详细分析MyRocks适用的各种场景。RocksDB是FaceBook基于Google开源的LevelDB实现的,使用LSM(Log-Structure Merge)树来存储数据。Facebook开发工程师对RocksDB进行了大量的开发,使其符合MySQL的插件式存储引擎框架的要求,移植到了MySQL上,并称之为MyRocks。MyRocks支持基于SQL的数据读写、锁机制、MVCC、事务、主从复制等MySQL绝大部分功能特性。从使用习惯考虑,使用MyRocks还是使用MySQL/InnoDB并没有多大区别。
经过4年多的发展,MyRocks已经成熟,开源的MySQL分支版本Percona和MariaDB已将MyRocks迁移到自己的MySQL分支中,InnoSQL作为网易的MySQL分支,目前也已支持MyRocks,具体版本为InnoSQL 5.7.20-v4,在开源的MyRoc ...
122. Best Time to Buy and Sell Stock II
题目Say you have an array prices for which the ith element is the price of a given stock on day i.
Design an algorithm to find the maximum profit. You may complete as many transactions as you like (i.e., buy one and sell one share of the stock multiple times).
Note: You may not engage in multiple transactions at the same time (i.e., you must sell the stock before you buy again).
Example 1:Input: [7,1,5,3,6,4]Output: 7Explanation: Buy on day 2 (price = 1) and sell on day 3 (price = 5), profit = 5-1 ...