剑指offer
文章平均质量分 63
将剑指offer的题目搞完,奥利给!
_End丶断弦
长风破浪会有时,直挂云帆济沧海!
展开
-
【leetcode】剑指 Offer 50. 第一个只出现一次的字符(C++)
第一个只出现一次的字符题目链接:https://leetcode.cn/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof/题解:把字符串全部存进哈希表,查找哈希表,出现一次的返回即可,这道题没什么难度class Solution {public: char firstUniqChar(string s) { unordered_map<char,int> CountMap; for(au原创 2022-05-16 15:56:38 · 199 阅读 · 1 评论 -
【leetcode】剑指offer21 ---调整数组顺序使奇数位于偶数前面(C++)
调整数组顺序使奇数位于偶数前面首尾双指针快慢双指针首尾双指针题目链接:https://leetcode.cn/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof/调整数组中奇数偶数元素的位置,我们可以想到双指针,左指针从左向右查找偶数,右指针从右向左查找奇数,然后交换。这个思想跟快排的思想一样,一个从左边查找比key(一般选数组左边的值)大的,右边找比key值小的,交换完后,数组就是有序的。动原创 2022-05-15 08:44:36 · 262 阅读 · 4 评论 -
【leetcode】剑指offer04 ---二维数组的查找(C++)
二维数组的查找暴搜优化暴搜题目链接:https://leetcode.cn/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/直接暴力解法,遍历二维数组,找到等于target的返回true,没找到返回false,注意数组为空的情况代码如下:class Solution {public: bool findNumberIn2DArray(vector<vector<int>>& matrix, int ta原创 2022-05-14 12:52:47 · 388 阅读 · 6 评论 -
【leetcode】剑指offer03 ---数组中重复的数字(C++)
数组中重复的数字3种解法数组中重复的数字数组中重复的数字题目链接:https://leetcode.cn/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/题解一:排序+遍历数组代码如下:class Solution {public: int findRepeatNumber(vector<int>& nums) { sort(nums.begin(),nums.end()); f原创 2022-05-13 11:15:15 · 435 阅读 · 2 评论 -
来几道简单的题(C++)
二叉搜索树的第k大节点二叉搜索树的最近公共祖先和为s的两个数字扑克牌中的顺子原创 2022-05-09 12:18:38 · 362 阅读 · 14 评论 -
假期过完,来刷点Top-K的OJ题
最小的k个数数据流中的中位数数组中的第K个最大元素原创 2022-05-05 14:38:09 · 581 阅读 · 32 评论 -
二叉树OJ---(C++)
树的子结构二叉树的镜像对称的二叉树二叉树中和为某一值的路径原创 2022-05-02 16:45:51 · 1657 阅读 · 39 评论 -
剑指offer-31--34二叉树OJ题(C++)
二叉树OJ题I. 从上到下打印二叉树2.从上到下打印二叉树 II3.从上到下打印二叉树 III4.二叉搜索树的后序遍历序列I. 从上到下打印二叉树题目链接:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof/这道题考察二叉树的层序遍历,也就是广度优先搜索(BFS),BFS通常借助队列先进先出的特点基本步骤:特例处理:树的根节点为空时,直接返回空列表将根节点入队,打印结果列表ansBFS原创 2022-04-30 20:51:38 · 1660 阅读 · 19 评论 -
剑指offer-----滑动窗口的最大值
滑动窗口的最大值滑动窗口的最大值滑动窗口的最大值题目链接:https://leetcode-cn.com/problems/hua-dong-chuang-kou-de-zui-da-zhi-lcof/首先想到的暴力解法是:先遍历一遍数组,每次比较滑动窗口内的数值大小,选出最大的这样3,和-1又多比较了,复杂度为:O((n-k+1) k) 约等于O(nk),大量数据的话就jj了,我们没有必要维护窗口中的所有值,我们可以在队列中只保留可能成为窗口中的最大元素,去掉那些不可能成为窗口的最大元原创 2022-04-26 08:21:52 · 397 阅读 · 22 评论 -
剑指offer.51 --- 数组中的逆序对
数组中的逆序对数组中的逆序对数组中的逆序对题目链接:https://leetcode-cn.com/problems/shu-zu-zhong-de-ni-xu-dui-lcof/首先想到的方法是暴力解法,用2个for循环遍历数组,比较前一个和后一个的大小,时间复杂度为O(N^2),这里给的数字范围很大,这个方法明显就不行了。class Solution { public: int reversePairs(vector<int>& nums) {原创 2022-04-24 15:16:08 · 1569 阅读 · 15 评论 -
剑指offer- 07 重建二叉树
根据前序遍历和后序遍历创建二叉树根据中序遍历和后序遍历创建二叉树原创 2022-04-18 15:24:45 · 567 阅读 · 32 评论