深度优先搜索---寻找数字字符串中缺失的数字
来源:互联网 发布:怎样申请旺旺淘宝账号 编辑:程序博客网 时间:2024/06/06 00:50
给一个由 1 - n 的整数随机组成的一个字符串序列,其中丢失了一个整数,请找到它。
注意事项
n <= 30
样例
给出 n = 20, str = 19201234567891011121314151618
丢失的数是 17 ,返回这个数。
//深度优先搜索算法//给一个由1-n的整数随机组成的一个字符串序列,其中丢失一个整数,请找到它 注意这里n<=30 //例如 n=20,str="1918171615141312111098764321"丢失的数是5//注意,如果在数组而不是字符串中找 未出现的数,可以直接求和,然后在做差,但是这种方法比较耗时;另一种方法可以//将该数组中的所有的数字和所有数字异或,得到的结果就是缺失的那个数 #include<iostream>#include<string.h>using namespace std;int num;//即为题目中的范围 int strlength;//字符串的长度 int flag[31]={0};void f(int curr,char a[])//n表示已经有的数的个数 { if(curr==strlength)//这种情况下,找到了缺失的数 { cout<<"find!!!!"<<endl; for(int i=1;i<=num;i++) { cout<<flag[i]<<" "; if(flag[i]==0) { cout<<"缺少的数字是:"<<i<<endl;//注意这个地方的找到缺少的数字之后还会退出这个函数继续寻找,但是其余的情况都不会再来到这个位置了 } } return; } int currnum=a[curr]-48; if(currnum<=num&&flag[currnum]==0) { cout<<"current:"<<currnum<<endl; flag[currnum]=1; f(curr+1,a); cout<<"current:"<<currnum<<endl; flag[currnum]=0; } currnum=currnum*10+a[curr+1]-48; if(currnum<=num&&flag[currnum]==0) { cout<<"current:"<<currnum<<endl; flag[currnum]=1; f(curr+2,a); flag[currnum]=0; }}int main(){ char aa[30]; cin>>num; cin>>aa; strlength=strlen(aa); f(0,aa);}
阅读全文
0 0
- 深度优先搜索---寻找数字字符串中缺失的数字
- 寻找缺失的数字...
- 寻找缺失的数字
- 寻找连续数组中缺失的数字!!
- 从连续数字中寻找缺失的数字
- 神奇数字的数量 DFS深度优先搜索
- 回溯--深度优先搜索(数字n的组合数)
- “基数排序”之数组中缺失的数字
- “基数排序”之数组中缺失的数字
- 找一个数组中缺失的数字
- 基数排序之数组中缺失的数字
- 缺失的数字分析
- 缺失的数字分析
- 待字闺中: 缺失的数字
- 缺失的数字
- LeetCode-268:Missing Number(寻找缺失数字)
- 怎样查出连续数字中缺失的数字
- ORACLE中搜索字母数字混合的字符串
- 二级购物车ShoppingCart
- Android数据储存之SharedPreferences详解
- SPFA 模板
- angular之发货信息表
- vue项目目录结构生成 利用CMD生成tree
- 深度优先搜索---寻找数字字符串中缺失的数字
- linux下两台服务器内网大文件传输,nexus切换服务器
- JTAG的TCK和GND短路补救方法
- xgboost入门与实战(实战调参篇)
- 2006年培养学员8万人,每年增长%25,请问按此增长速度,到那一年培训学员人数将达到20万人用for,while,dowhile,实现
- 论文阅读:《Pyramid Scene Parsing Network》CVPR 2017
- 模式开始-第四天
- 如何在html中直接给某个按钮置灰(样式、去除绑定事件), querySelector与jquery selector的不同之处
- AngularJs实现增加订单、批量发货