剑指offer例题分享--6
前言:继续整理例题,快速做完这部分,然后继续用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相关推荐
- 剑指offer例题——二维数组中的查找
//实现一个函数,将一个字符串的每个空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. public cla ...
- 剑指offer例题5—逆序输出链表
使用递归: #include<iostream> using namespace std; struct ListNode {int value;ListNode *next; }; vo ...
- python小技巧:求32位二进制负数的补码,附剑指offer中的应用
实现方法: 先上操作,python里面的负数直接将其和 0xffffffff 进行 与(&) 操作即可得到其补码: def func(n):if n<0:n=n&0xffffff ...
- 《剑指offer》每日分享三道题- 2 day
<剑指offer>系列第二弹,让我们用饱满的热情,迎接接下来的几道小题. >本系列分享的都是常规做法和全新思路的总结,各位可千万不要看着眼熟,而错过新颖的思路噻!!! 文章目录 1. ...
- 最新算法校招编程-剑指offer、Leetcode常考题目及解法分享
本资源整理了BAT.TMD等互联网算法岗校招面试过程中常考的LeetCode和剑指offer编程题:此外,还整理了部分百度.腾讯.阿里.今日头条相关的面试经验,对于正准备校招面试的同学非常值得参考复习 ...
- 剑指OFFER思路总结与代码分享——树篇(Java实现)
剑指OFFER树相关 55-1 二叉树的深度 27 二叉树的镜像 54 二叉搜索树的第K大节点 32-II 从上到下打印二叉树 07 重建二叉树 68-I 二叉搜索树的最近公共祖先 68-II 二叉树 ...
- 算法题001 剑指Offer 面试题三:二维数组中的查找
剑指Offer题目1:二维数组中的查找 题目描述: http://ac.jobdu.com/problem.php?cid=1039&pid=0 在一个二维数组中,每一行都按照从左到右递增的顺 ...
- 剑指offer(1-10题)详解
文章目录 01二维数组的查找 02替换空格 03从尾到头打印链表 04重建二叉树★ 05 用两个栈实现队列 06旋转数组的最小数字 07 斐波那契数列 08 跳台阶 09 变态跳台阶★ 10 矩阵覆盖 ...
- 【送书福利8本】YYDS《剑指Offer》,百万程序员人手一册
程序员面试应该看什么书? 博文菌必须毫不犹豫地首推<剑指Offer>这本程序员面试圣经. 这可不是博文菌信口拈来的回答,看看广大网友们的反馈,就知道这是经过读者朋友们认证的事实!( PS: ...
- java统计一个字符串中每个字符出现的次数_剑指offer算法题054:字符流中第一个不重复的字符...
推荐阅读:宇宙条的工作总结:一年前还在面试找工作,一年后在面试找工作的学弟学妹们:第一次当面试官的经历分享小编在求职找找工作期间剑指offer上的算法题刷了很多遍,并且每道题小编当时都总结了一种最适合 ...
最新文章
- Gradle自动化之自动打包并上传到fir测试网站
- How does a relational database work
- 总结XX餐饮收银项目中的得与失
- Xcode添加pch文件
- asp.net在IIS7中更改网站的.net framework框架版本
- php $rs1- gt eof,PHP_PHP速成大法,简单介绍一下PHP的语法
1、嵌 - phpStudy
- Codeforces Round #342 (Div. 2) D. Finals in arithmetic(想法题/构造题)
- Buildroot make网卡interfaces文件被修改
- 【Redis高手修炼之路】客户端工具——客户端工具以及常用命令
- c++如何侦测鼠标点击?
- 内网穿透之HTTP穿透
- 解决联想笔记本 FN键不起作用的方法
- CVR:CVR=(转化量/点击量)*100%
- 【SpringCloud 2021.0.0】12、路由网关Gateway之简介 (spring-boot 2.6.3)
- java随机星星怎么闪_原生js实现星星闪烁的效果
- 制作QQ会员页面导航
- 评分卡模型(二)基于评分卡模型的用户付费预测
- 什么是元数据管理?以及该如何做元数据管理呢?
- 大商创x支持mysql版本_大商创x全面升级2.0,匠心打造b2b2c多用户商城系统
- Xilinx与Altera的FPGA区别
热门文章
- 游戏开发之动态创建对象及构造函数、析构函数的执行(C++基础)
- 基本的访问控制列表 ACL
- Hybrid 接口应用
- 在网上找来的几个大牛,忽然觉得自己来参加ACM倒也不是一件错误的事情,梦想总是要有的,万一成了呢。
- Mosquitto --topic
- Apache Spark源码走读(十)ShuffleMapTask计算结果的保存与读取 WEB UI和Metrics初始化及数据更新过程分析...
- HMM学习笔记_3(从一个实例中学习Viterbi算法)
- 家居建材行业信息化管理需内外兼修
- 笔记本重置找不到恢复环境_Win10 自带的疑问解答、备份、恢复还原、重置系统怎么使用?...
- python 自动赚钱软件排行榜_微任务兼职平台app下载