前言:继续整理例题,快速做完这部分,然后继续用C++去刷数据结构和算法的题。

  面试题28:

  

    代码如下:

    

#include<iostream>
#include<stdio.h>
using namespace std;void Permutation(char *pStr,char *pBegin)
{if(*pBegin == '\0'){printf("str:%s\n",pStr);}else{for(char *pCh=pBegin;*pCh!='\0';++pCh){char temp = *pCh;*pCh = *pBegin;*pBegin = temp;Permutation(pStr,pBegin+1);temp = *pCh;*pCh = *pBegin;*pBegin = temp;}}
}void Permutation(char *pStr)
{if(pStr == NULL)return;Permutation(pStr,pStr);
}int main()
{char buf[32]="asd";Permutation(buf);return 0;
}

  面试题29:

  

  代码如下:

  

/*************************************************************************> File Name: 29.cpp> Author: ma6174> Mail: ma6174@163.com > Created Time: Tue 14 Aug 2018 09:45:42 AM CST************************************************************************/#include<iostream>
using namespace std;bool g_bInputInvalid =false;bool CheckInvalidArray(int *numbers,int len)
{if(numbers==NULL && len<=0)g_bInputInvalid = true;return g_bInputInvalid;
}bool CheckMoreThanHalf(int *numbers,int len,int num)
{int times = 0;for(int i=0;i<len;++i){if(numbers[i] == num)times++;}bool isMoreThanHalf = true;if(times*2 < len){g_bInputInvalid = true;isMoreThanHalf = false;}return isMoreThanHalf;
}int MoreThanHalfNum(int *numbers,int len)
{if(CheckInvalidArray(numbers,len))return 0;int result = numbers[0];int times = 1;for(int i=1;i<len;++i){if(times == 0){result = numbers[i];times = 1;}else if(numbers[i] == result)times++;elsetimes--;}if(!CheckMoreThanHalf(numbers,len,result))result = 0;return result;
}int main()
{int data[]={1,2,5,6,2,2,2};cout << "num: " << MoreThanHalfNum(data,7) << endl;;return 0;
}

  面试题30:

   

    分析:一定要对C++的STL熟悉,才能看明白如下代码:

#include<iostream>
#include<set>
#include<vector>
#include<algorithm>
#include<iterator>
using namespace std;//greater<int>()是一个预定义函数对象,将multiset容器从大到小排序
typedef multiset<int,greater<int> > intSet;
typedef multiset<int,greater<int> >::iterator setIterator;void GetLeastNumbers(const vector<int> &data,intSet &leastNumbers,int k)
{//清空容器
    leastNumbers.clear();if(k<1 || data.size()<k)return;//创建迭代器vector<int>::const_iterator iter = data.begin();for(;iter!=data.end();++iter){//小于k插入容器if((leastNumbers.size())<k)leastNumbers.insert(*iter);else{setIterator iteraCreatest = leastNumbers.begin();//如果插入的数比容器中的最大值小,则删除if(*iter < *(leastNumbers.begin())){leastNumbers.erase(iteraCreatest);leastNumbers.insert(*iter);}}}
}int main()
{vector<int> data(4);data[0] = 1;data[1] = 8;data[2] = 9;data[3] = 2;intSet set;GetLeastNumbers(data,set,2);//iterate over all elements and print them
     intSet::iterator pos;for (pos = set.begin(); pos != set.end(); ++pos) {cout << *pos << ' ';}cout << endl;return 0;
}

转载于:https://www.cnblogs.com/liudw-0215/p/9474997.html

剑指offer例题分享--6相关推荐

  1. 剑指offer例题——二维数组中的查找

    //实现一个函数,将一个字符串的每个空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. public cla ...

  2. 剑指offer例题5—逆序输出链表

    使用递归: #include<iostream> using namespace std; struct ListNode {int value;ListNode *next; }; vo ...

  3. python小技巧:求32位二进制负数的补码,附剑指offer中的应用

    实现方法: 先上操作,python里面的负数直接将其和 0xffffffff 进行 与(&) 操作即可得到其补码: def func(n):if n<0:n=n&0xffffff ...

  4. 《剑指offer》每日分享三道题- 2 day

    <剑指offer>系列第二弹,让我们用饱满的热情,迎接接下来的几道小题. >本系列分享的都是常规做法和全新思路的总结,各位可千万不要看着眼熟,而错过新颖的思路噻!!! 文章目录 1. ...

  5. 最新算法校招编程-剑指offer、Leetcode常考题目及解法分享

    本资源整理了BAT.TMD等互联网算法岗校招面试过程中常考的LeetCode和剑指offer编程题:此外,还整理了部分百度.腾讯.阿里.今日头条相关的面试经验,对于正准备校招面试的同学非常值得参考复习 ...

  6. 剑指OFFER思路总结与代码分享——树篇(Java实现)

    剑指OFFER树相关 55-1 二叉树的深度 27 二叉树的镜像 54 二叉搜索树的第K大节点 32-II 从上到下打印二叉树 07 重建二叉树 68-I 二叉搜索树的最近公共祖先 68-II 二叉树 ...

  7. 算法题001 剑指Offer 面试题三:二维数组中的查找

    剑指Offer题目1:二维数组中的查找 题目描述: http://ac.jobdu.com/problem.php?cid=1039&pid=0 在一个二维数组中,每一行都按照从左到右递增的顺 ...

  8. 剑指offer(1-10题)详解

    文章目录 01二维数组的查找 02替换空格 03从尾到头打印链表 04重建二叉树★ 05 用两个栈实现队列 06旋转数组的最小数字 07 斐波那契数列 08 跳台阶 09 变态跳台阶★ 10 矩阵覆盖 ...

  9. 【送书福利8本】YYDS《剑指Offer》,百万程序员人手一册

    程序员面试应该看什么书? 博文菌必须毫不犹豫地首推<剑指Offer>这本程序员面试圣经. 这可不是博文菌信口拈来的回答,看看广大网友们的反馈,就知道这是经过读者朋友们认证的事实!( PS: ...

  10. java统计一个字符串中每个字符出现的次数_剑指offer算法题054:字符流中第一个不重复的字符...

    推荐阅读:宇宙条的工作总结:一年前还在面试找工作,一年后在面试找工作的学弟学妹们:第一次当面试官的经历分享小编在求职找找工作期间剑指offer上的算法题刷了很多遍,并且每道题小编当时都总结了一种最适合 ...

最新文章

  1. Gradle自动化之自动打包并上传到fir测试网站
  2. How does a relational database work
  3. 总结XX餐饮收银项目中的得与失
  4. Xcode添加pch文件
  5. asp.net在IIS7中更改网站的.net framework框架版本
  6. php $rs1- gt eof,PHP_PHP速成大法,简单介绍一下PHP的语法 1、嵌 - phpStudy
  7. Codeforces Round #342 (Div. 2) D. Finals in arithmetic(想法题/构造题)
  8. Buildroot make网卡interfaces文件被修改
  9. 【Redis高手修炼之路】客户端工具——客户端工具以及常用命令
  10. c++如何侦测鼠标点击?
  11. 内网穿透之HTTP穿透
  12. 解决联想笔记本 FN键不起作用的方法
  13. CVR:CVR=(转化量/点击量)*100%
  14. 【SpringCloud 2021.0.0】12、路由网关Gateway之简介 (spring-boot 2.6.3)
  15. java随机星星怎么闪_原生js实现星星闪烁的效果
  16. 制作QQ会员页面导航
  17. 评分卡模型(二)基于评分卡模型的用户付费预测
  18. 什么是元数据管理?以及该如何做元数据管理呢?
  19. 大商创x支持mysql版本_大商创x全面升级2.0,匠心打造b2b2c多用户商城系统
  20. Xilinx与Altera的FPGA区别

热门文章

  1. 游戏开发之动态创建对象及构造函数、析构函数的执行(C++基础)
  2. 基本的访问控制列表 ACL
  3. Hybrid 接口应用
  4. 在网上找来的几个大牛,忽然觉得自己来参加ACM倒也不是一件错误的事情,梦想总是要有的,万一成了呢。
  5. Mosquitto --topic
  6. Apache Spark源码走读(十)ShuffleMapTask计算结果的保存与读取 WEB UI和Metrics初始化及数据更新过程分析...
  7. HMM学习笔记_3(从一个实例中学习Viterbi算法)
  8. 家居建材行业信息化管理需内外兼修
  9. 笔记本重置找不到恢复环境_Win10 自带的疑问解答、备份、恢复还原、重置系统怎么使用?...
  10. python 自动赚钱软件排行榜_微任务兼职平台app下载