方法一:暴力求解,找次数,比查找数的值大就直接停止查找 。
方法二:二分查找要找数的两端,两端相减加一就是出现次数 。
方法三:哈希表,懒得写了 。
剑指 Offer 53 - II. 0~n-1中缺失的数字
//方法一:class Solution {public:int missingNumber(vector
方法一:二分法查找,若该数没问题的话,那么其索引一定为其值,以此为突破口,查找第一个索引与其值不同的位置,就是缺失数 。
方法二:利用等差数列的求和公式(n*(n+1)/2),算出和,然后减去该数组总和,就是缺失数 。
剑指 Offer 54. 二叉搜索树的第k大节点
/*** 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:vector
二叉树的遍历,中序遍历的话它返回的就是一个有序序列,左中右是升序,右中左是降序,所以我们只要将其存储起来,最后直接返回就行了 。或者我们可以直接将要返回的数用全局变量存储起来,最后直接返回就行,如方法二,但是它没有第一种快,因为它其实到最后还是会将这个遍历走完的,也没用 。
剑指 Offer 55 - I. 二叉树的深度
/*** 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 maxDepth(TreeNode* root) {if (!root) {return 0;}return max(maxDepth(root->left), maxDepth(root->right)) + 1;}};//方法二:class Solution {public:int depth = 0;int maxDepth(TreeNode* root) {dfs(root, 0);return depth;}private:void dfs(TreeNode* root, int now) {if (!root) {return;}now++;if (now >= depth) {depth = now;}dfs(root->left, now);dfs(root->right, now);} };
没啥说的,递归 。但是可能是因为不含有返回值的原因吧,第二种能比第一种快一点 。
- 《窥情》未删减版在哪儿在线观看
- android应用程序开发!在字节跳动我是如何当面试官的,威力加强版
- 初一上册数学 初一上册数学书电子版
- 最值得普通人学的编程语言是哪个?
- win10企业版ltsc密钥 win10企业版ltsc有录屏功能吗
- 造梦西游4好号和密码真的90级 造梦西游4好号和密码真的手机版
- iqooneo7竞速版屏幕尺寸
- 一九四二电影免费完整版在哪儿在线观看
- 偷窥课程完整版是什么电影
- 医用口罩和普通口罩有什么区别