剑指offer
JN2002
这个作者很懒,什么都没留下…
展开
-
【剑指offer-4】举一反三
参考https://blog.csdn.net/xjm199/article/details/26149891const int length =50;void hebing(int* arr1,int* arr2,int len1,int len2){ if(arr2==NULL ||len1+len2>length||len2<1) return; int i1=le...转载 2019-05-31 17:09:01 · 81 阅读 · 0 评论 -
最小的K个数
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。优先队列实现class Solution {public: vector<int> GetLeastNumbers_Solution(vector<int> input, int k) { vector<int> ...原创 2019-08-19 11:41:04 · 84 阅读 · 0 评论 -
字符串的组合
#include<iostream>#include<set>#include<vector>#include<string>using namespace std;int main(){ int i, j, len; string s, s_tmp; set<string> out; set<string...原创 2019-08-19 10:45:58 · 168 阅读 · 0 评论 -
【剑指offer-14】调整数组顺序使奇数位于偶数前面
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。class Solution {public: void reOrderArray(vector<int> &array) { if(array.size()<2...原创 2019-07-16 16:36:45 · 90 阅读 · 0 评论 -
【剑指offer-47、位运算】不用加减乘除做加法
题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。思路: 1、各位相加但不计进位(异或) 2、记下进位(先位与再左移一位) 3、前两步结果相加(前两步相加)class Solution {public: int Add(int num1, int num2) { in...原创 2019-07-15 16:22:24 · 121 阅读 · 0 评论 -
【剑指offer-40、位运算】数组中只出现一次的数字
题目描述:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。例如输入数组{ 2,4,3,6,3,2,5,5, }还是看代码吧,然后再纸上画出这些数的二进制就懂了class Solution {public: void FindNumsAppearOnce(vector<int> data, int* num1, int *num2...原创 2019-07-15 15:54:17 · 104 阅读 · 0 评论 -
【剑指offer-10、位运算】二进制1的个数
10、二进制1的个数题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解法一:不好!!!负数容易死循环(思想:先判断整数二进制表示中最右边1位是不是为1,然后右移一位)//解法一int Numberof1(int n){ int count = 0; while (n) { if (n & 1) count++; n=n >...原创 2019-07-15 15:50:19 · 108 阅读 · 0 评论 -
【剑指offer24&25】:二叉搜索树的后序遍历序列&&二叉树中和为某一值的路径
24题目描述:输入一个数组,判断该数组是不是某二叉搜索树的后序遍历的结果,如果是则返回true,否则返回false。解题技巧:(1)二叉搜索树的特点—左结点<根结点,右结点>跟结点;(2)后序遍历的根结点在数组的最后一位#include "stdafx.h"#include<iostream>#include<vector>using ...原创 2019-06-28 19:39:47 · 70 阅读 · 0 评论 -
【剑指offer-9】 斐波那契数列
题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。第一种解法不好:会重复计算很多值,时间复杂度以n的指数方式增长long Fibonacci (int n){ if(n==0) return 0; if(n==1) return 1; return Fibonacci...原创 2019-07-12 20:51:39 · 77 阅读 · 0 评论 -
【剑指offer-8】 旋转数组的最小数字
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。使用二分法实现O(logn)查找,如若从头到尾遍历时间复杂度为O(n)class Solution {...原创 2019-07-12 20:31:52 · 67 阅读 · 0 评论 -
【剑指offer7】:用两个栈实现队列 ++两个队列实现一个栈
解题技巧:入栈:直接入栈1,出栈:出栈2的值:若stack2为空则将stack1中的数弹出压入stack2,再弹出stack2中的值;若栈2非空,直接弹出即可。class Solution{public: void push(int node) { stack1.push(node); } int pop() { int ...原创 2019-07-09 10:54:43 · 96 阅读 · 0 评论 -
【剑指offer6&18】:重建二叉树&:树的子结构
剑指offer6:重建二叉树描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。例如二叉树的结构如下图所示 #include "stdafx.h"#include<iostream>#include<algorithm>#include<string&g...原创 2019-06-21 20:29:17 · 71 阅读 · 0 评论 -
【剑指offer】单链表操作的所有知识点与代码【1】
链表的结点定义如下:struct ListNode{ int m_value; ListNode* m_pnext; ListNode() { vm_value=0; m_pnext=NULL; } };在单链表末尾添加一个结点传入参数为一个“指向指针的指针”和“要插入的值”。Q:为什么要是一个“指向指针的指针”?A:因为当我们往一个空链表插入一个结点...原创 2019-06-03 16:25:14 · 143 阅读 · 0 评论 -
【剑指offer-1】复制运算符函数
主要考查四个点:1、函数返回类型是否把函数返回值的类型声明为该类型的引用,并在该函数结束前返回实例自身的引用(即*this):可参考“Effective C++ 条款10”2、传入参数类型是否把传入参数的类型声明为常量引用(const),涉及到复制构造函数的问题3、是否释放实例自身已有的内存在分配新内存之前要释放自身已有的空间,避免造成内存泄露4、传入的参数和当前实例( * thi...原创 2019-05-29 21:08:32 · 92 阅读 · 0 评论 -
【剑指offer】C++中,四个与类型转换相关的关键字:
C++中,四个与类型转换相关的关键字:static_cast、const_cast、reinterpret_cast、dynamic_cast。static_cast------运算符完成相关类型之间的转换使用场景:如在同一类层次结构中的一个指针类型到另一个指针类型,整型到枚举类型,或者浮点型到整型等。用于基类和子类之间的指针或引用之间的转换,这种转换把子类的指针或引用转换为基类表示是安全...原创 2019-05-29 19:47:40 · 109 阅读 · 0 评论 -
【剑指offer 15&16&17&37】单链表操作的所有知识点与代码【2】
7、剑指offer15:链表中倒数第k个结点原理:倒数第K个结点就是从头结点开始的第n-k+1个结点,为了实现一次遍历就找到倒数第k个结点:定义两个指针,第一个指针从头指针先走K-1步,第二个指针不动;从第k补开始,第二个指针也开始从头指针遍历,两个指针一起走,当第一个指针走到尾结点时,第二个指针的位置则为n-k+1,正好为倒数第k个结点。此代码注意三种情况:(考查代码的鲁棒性)(1)输入的...原创 2019-06-06 10:04:51 · 109 阅读 · 0 评论 -
第一个只出现一次的字符
题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).class Solution {public: int FirstNotRepeatingChar(string str) { map<char,int> mp; ...原创 2019-08-19 17:06:51 · 85 阅读 · 0 评论