博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试题43,44,45
阅读量:4620 次
发布时间:2019-06-09

本文共 1850 字,大约阅读时间需要 6 分钟。

三个抽象建模问题:

  • 选择合理数据结构
  • 分析模型中内在规律

面试题43:n个骰子点数

面试题44:扑克牌的顺子

 http://www.nowcoder.com/practice/762836f4d43d43ca9deb273b3de8e1f4?tpId=13&tqId=11198&rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

class Solution {public:    bool IsContinuous( vector
numbers ) { int len = numbers.size(); sort(numbers.begin(),numbers.end()); if(len <= 0) return false; int zero_count = 0; int gap_count = 0; for(int i = 0; i < len; i++) { if(numbers[i] == 0) zero_count++; else if( i + 1 < len) { if(numbers[i] == numbers[i+1]) return false; else gap_count += numbers[i+1] - numbers[i] - 1; } } if(gap_count > zero_count) return false; else return true; }};

 

面试题45:圆圈中最后剩下的数字

用list当作环形链表,当iterator遍历到end,设为begin

注意迭代器不能用四则运算,只能用自增自减,故在第22行用++,然后在26行要还原

1 int LastRemaining_Solution1(unsigned int n, unsigned int m) 2 { 3     if(n < 1 || m < 1) 4         return -1; 5  6     unsigned int i = 0; 7  8     list
numbers; 9 for(i = 0; i < n; ++ i)10 numbers.push_back(i);11 12 list
::iterator current = numbers.begin();13 while(numbers.size() > 1)14 {15 for(int i = 1; i < m; ++ i)16 {17 current ++;18 if(current == numbers.end())19 current = numbers.begin();20 }21 22 list
::iterator next = ++ current;23 if(next == numbers.end())24 next = numbers.begin();25 26 -- current;27 numbers.erase(current);28 current = next;29 }30 31 return *(current);32 }

 

转载于:https://www.cnblogs.com/raichen/p/5688322.html

你可能感兴趣的文章
如何处理测试人员的流动问题?
查看>>
1.border-image
查看>>
PagerIndicator主题样式修改
查看>>
java中HashMap类用法
查看>>
分布式监控系统Zabbix-完整安装记录 -添加端口监控
查看>>
Python之反向迭代
查看>>
STM32F4 输入输出(GPIO)模式理解
查看>>
转义符
查看>>
poj 1019
查看>>
asp.net mvc上传文件
查看>>
bitmq集群高可用测试
查看>>
主成分分析(PCA)原理详解
查看>>
短信验证接口网址
查看>>
Geohash距离估算
查看>>
Demon_背包系统(实现装备栏,背包栏,可以切换装备)
查看>>
记录:一次数据库被恶意修改配置文件的问题
查看>>
redis 持久化
查看>>
解决Jupyter notebook[import tensorflow as tf]报错
查看>>
Windows平台下使用ffmpeg和segmenter实现m3u8直播点播
查看>>
python网络画图——networkX
查看>>