当前位置: 首页 > news >正文

做网站多少钱一个月windows优化大师如何卸载

做网站多少钱一个月,windows优化大师如何卸载,网站制,新竹自助建站系统剑指 Offer#xff08;第2版#xff09;面试题 17#xff1a;打印从 1 到最大的 n 位数 剑指 Offer#xff08;第2版#xff09;面试题 17#xff1a;打印从 1 到最大的 n 位数解法1#xff1a;字符数组解法2#xff1a;全排列 剑指 Offer#xff08;第2版#xff09… 剑指 Offer第2版面试题 17打印从 1 到最大的 n 位数 剑指 Offer第2版面试题 17打印从 1 到最大的 n 位数解法1字符数组解法2全排列 剑指 Offer第2版面试题 17打印从 1 到最大的 n 位数 题目描述 输入数字n按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3则打印出 123 一直到最大的 3 位 999。 首先想到的是 for 循环挨个输出但是这样的话会有 n 过大位数过高而造成溢出的情况。 解法1字符数组 我们使用字符串来模拟数字这样的话不管多少位我们都可以解决 构造字符数组先构造一个 n 位每一位都为 ‘0’ 的数组每次最后一位 1重复这一过程到溢出为此如 2 位加到 100 就会溢出因此输出 1 ~ 99 输出前面有 ‘0’ 的话不输出如 “001”应输出 “1” 代码 #include iostream #include string.h using namespace std;void print_number(int number); void print_arr(char *arr); bool over(char *arr);int main() {print_number(2);system(pause);return 0; }void print_number(int number) {char *arr new char[number 1];memset(arr, 0, number);arr[number] \0;while (!over(arr)){print_arr(arr);} }void print_arr(char *arr) { // 输出字符数组第一个为0的话不输出bool start false;int count 0;while (!start){if (arr[count] ! 0)start true;count;}for (int i count - 1; i strlen(arr); i)cout arr[i];cout \t; }bool over(char *arr) { // 数字加1操作arr[strlen(arr) - 1];int tmp 0;for (int i strlen(arr) - 1; i 0; i--){ // 进1相加arr[i] tmp;if (arr[i] - 0 9){arr[i] 0;tmp 1;}else{tmp 0;}}if (arr[0] 0 tmp 1)return true; // 判断溢出return false; }复杂度分析 时间复杂度O(2n-1)。 空间复杂度O(n)用到了一个长度为 n1 的字符数组。 解法2全排列 同样基于字符数组每一位的数字都是从0 ~9 之间不断变化因此其是一个排列的问题我们可以使用递归实现数组的排列输出的规则同解法 1。 代码 #include iostream #include string.h using namespace std;void print_number(int number); void print_arr(char *arr); void permutation(char *arr, int index);int main() {print_number(2);system(pause);return 0; }void print_number(int number) {char *arr new char[number 1];memset(arr, 0, number);arr[number] \0;for (int i 0; i 10; i){arr[0] i 0;permutation(arr, 0);} } void permutation(char *arr, int index) { // 先递归凑足n位然后排列输出if (index strlen(arr) - 1){print_arr(arr);return;}for (int i 0; i 10; i){arr[index 1] i 0;permutation(arr, index 1);} } void print_arr(char *arr) { // 输出字符数组第一个为0的话不输出bool start false;int count 0;while (!start){if (arr[count] ! 0)start true;count;}for (int i count - 1; i strlen(arr); i)cout arr[i];cout \t; }复杂度分析 时间复杂度O(2n-1)。 空间复杂度O(n)递归的深度为 n。
http://www.zqtcl.cn/news/146264/

相关文章:

  • 域名申请好了怎么做网站山西手机版建站系统信息
  • 维度网络网站建设广东水利建设与管理信息网站
  • 浏阳市商务局网站溪江农贸市场建设做关于车的网站有哪些
  • 网站建设教程资源网站网站制作网站的
  • 公司网页是什么被公司优化掉是什么意思
  • 酒店网站建设方案结束语慈溪企业排名网站
  • 做行业网站广告能赚多少钱百度搜索下载安装
  • 寺院网站建设网页搭建
  • 网站设计报价是多少wordpress登录接口
  • 灵宝网站建设建h5网站费用
  • 泊头做网站的有哪些深圳网页制作与网站建设服务器
  • 网站设计的思路网页无法访问百度
  • 简述你对于网站建设的认识网络工程就业岗位有哪些
  • 征婚网站上教人做恒指期货做网站颜色黑色代码多少
  • 海南省建设工程质量监督网站如何做搞笑原创视频网站
  • 网页游戏人气排行榜百度seo插件
  • 免费申请论坛网站更改域名代理商对网站有影响吗
  • 河南做网站公司报价工商做年报网站
  • 用狐狸做logo的网站现在网站开发技术有哪些
  • html 网站添加悬浮二维码瑜伽网站设计
  • 帮别人做网站的单子制作图片库
  • 网站注册步骤律师在线咨询免费24小时电话
  • 经典的网站设计工具怎么做网站表格
  • 韩文网站建设wordpress 置顶顺序
  • 做网站好还是做app好做房产的网站排名
  • 纯静态网站部署服务器如何做高端网站建设
  • 特色食品网站建设策划书网站建设丶seo优化
  • 安徽省六安市建设局网站网络服务提供者知道网络用户利用其网络服务侵害
  • 珠海建设局网站东莞市建设信息网
  • 已有域名怎么做网站wordpress二维码制作教程