剑指 Offer(普通版)
剑指 Offer 03. 数组中重复的数字
//方法一:class Solution {public:int findRepeatNumber(vector
方法一:利用C++中自带的哈希表,通过键值访问,若已经有了则表示这个数字重复了 。
方法二:直接进行排序,看相邻两个元素是否相同 。
方法三:鸽巢原理,也就是相当于把原表当作哈希表,如果其相应数值索引位置存储的值等于这个索引值,那么就表示该值已经出现一次了,下次再出现就是重复值了 。
剑指 Offer 04. 二维数组中的查找
class Solution {public:bool findNumberIn2DArray(vector
因为每行的最后一个都是该行最大的,所以先从最后判断,若大于就表示这一行都比小,就到下一行重新判断,若小于就表示这一行存在比它大的数和比它小的数,就在这行找就行了,找不到就返回false,注意没有东西的特殊情况 。
剑指 Offer 05. 替换空格
//方法一:class Solution {public:string replaceSpace(string s) {for (int i = 0; i < s.size(); i++) {if (s[i] == ' ') {s = s.replace(i, 1, "%20");}}return s;}};//方法二:class Solution {public:string replaceSpace(string s) {while (s.find(" ") + 1) {s = s.replace(s.find(' '), 1, "%20");}return s;}};//find函数没找到就会返回-1.
没啥说的,找到后替换就行 。
剑指 Offer 06. 从尾到头打印链表
class Solution {public:vector
很简单的先用栈存储,然后再pop进数组就行了 。
剑指 Offer 07. 重建二叉树
/*** 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:// 递归解决:前序遍历是根左右,中序遍历是左根右,我们可以根据根来分别划分 前序数组和中序数组,然后递归处理划分的数组即可TreeNode* buildTree(vector
- 《窥情》未删减版在哪儿在线观看
- android应用程序开发!在字节跳动我是如何当面试官的,威力加强版
- 初一上册数学 初一上册数学书电子版
- 最值得普通人学的编程语言是哪个?
- win10企业版ltsc密钥 win10企业版ltsc有录屏功能吗
- 造梦西游4好号和密码真的90级 造梦西游4好号和密码真的手机版
- iqooneo7竞速版屏幕尺寸
- 一九四二电影免费完整版在哪儿在线观看
- 偷窥课程完整版是什么电影
- 医用口罩和普通口罩有什么区别