1144 The Missing Number

本文介绍了一种使用STL中的set和vector解决寻找数组中缺失最小正整数问题的方法。通过先去除重复元素,再筛选并排序正整数,最后遍历找到第一个不匹配的数字作为答案。

在这里插入图片描述

题目大意;

给n个数字,找到不在这个数字列表里面的最小的正整数.

解题思路:

这题做法很多,我这里为了熟悉一下STl用了SET去重加vector排序,也可以直接用数组标记然后遍历就可以。
代码如下:

#include<iostream>
#include<cstdio>
#include<fstream>
#include<set>
#include<cmath>
#include<cstring>
#include<string>
#include<map>
#include<vector>
#include<iomanip>
#include<cstdlib>
#include<list>
#include<queue>
#include<stack>
#include<algorithm>
#define inf 0x3f3f3f3f
#define MOD 1000000007
#define mem0(a) memset(a,0,sizeof(a))
#define mem1(a) memset(a,-1,sizeof(a))
#define meminf(a) memset(a,inf,sizeof(a))
//vector ::iterator it;
//set<int>::iterator iter;
//fill(function+begin.,function+length,key);
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
int main()
{
//  std::ios::sync_with_stdio(false);
//  cin.tie(0);
//  freopen("test.txt","r",stdin);
//  freopen("output.txt","w",stdout);
 int n;
 vector<int> v;
 set<int> s;
 scanf("%d",&n);
 for(int i=0;i<n;i++)
 {
   int t;
   scanf("%d",&t);
   s.insert(t);//去重
 }
 set<int>::iterator iter;
 for(iter=s.begin();iter!=s.end();iter++)
 {
   int t=*iter;
   if(t>0)v.push_back(t);//将正整数加入排序数组中
 }
 sort(v.begin(),v.end());
 int k=0;//答案
 bool flag=false;
 for(int i=0;i<v.size();i++)
 {
   if(i+1==v[i])
   {
     k=v[i];
     continue;
   }
   else
   {
     int result=i+1;
     flag=true;
     cout<<result<<endl;
     break;
   }
 }
 if(!flag)cout<<k+1<<endl;//如果不存在最小丢失数字,就输出当前序列最大数+1
 return 0;
}

在 LaTeX 中遇到 `Missing number, treated as zero.` 错误通常表明编译器期望找到一个数字或长度值,但在相应位置上却发现了其他内容。此类错误在使用浮动体(如 `table` 或 `figure`)时较为常见,特别是在对表格、图形进行排版调整时。 ### 常见原因及解决方法 1. **在方括号中使用了非数字参数** - 在某些宏包或命令中,LaTeX 会将方括号中的内容解析为可选参数,例如 `[h]`、`[t]` 等用于指定浮动体位置的选项。如果在这些方括号中错误地使用了非数字或不被支持的内容,就会触发该错误。 - **解决方案**:确保所有可选参数均符合语法规范,必要时用大括号 `{}` 将特殊字符包裹起来以避免误解[^5]。 2. **在 `\begin{tabular}` 或 `\begin{array}` 中误用了方括号** - 如果在表格定义中直接使用了类似 `[x]` 的表达式而没有正确转义,LaTeX 可能会将其误认为是需要数值参数的命令。 - **解决方案**:在可能引起歧义的地方添加额外的大括号,例如将 `[x]` 改写为 `{[x]}`。 3. **与某些宏包冲突** - 某些情况下,使用了多个图形或表格相关的宏包(如 `subfigure`、`float`、`caption` 等),可能会导致命名冲突或参数处理异常。 - **解决方案**:检查并更新宏包版本,尝试简化文档导言区引入的宏包数量,排查是否存在重复定义的问题[^4]。 4. **非法单位或缺少单位** - 当设置列宽、间距等参数时,如果没有正确指定单位(如 `pt`、`cm`),也可能引发此错误。 - **解决方案**:确保所有涉及尺寸设定的地方都带有合适的单位,例如 `\tabcolsep=0.4cm` 应保持格式一致[^2]。 5. **在浮动体外部使用浮动体命令** - 浮动体环境(如 `table`、`figure`)不能嵌套在某些不允许浮动的环境中(如 `framed`、`minipage` 等),否则会出现“Not in outer par mode”等错误,并伴随 `Missing number` 提示。 - **解决方案**:移除浮动体标签 `[h]` 或改用非浮动表格/图形环境,或者使用 `H` 选项强制定位(需加载 `float` 宏包)[^1]。 6. **未正确结束数学模式** - 在数学环境中使用了不完整的命令结构,例如 `\begin{tabular}` 内部混用了数学符号但未正确闭合 `$...$`。 - **解决方案**:仔细检查所有数学公式是否完整闭合,避免跨行或跨列断开。 --- ### 示例修正代码 以下是一个修复后的 `table*` 环境示例: ```latex \usepackage{float} % 引入 float 宏包以使用 H 选项 \begin{table*}[H] \centering \caption{Quantitative results on NYUv2 dataset, the best performance is marked in bold} \label{tab6} \tabcolsep=0.4cm \begin{tabular}{cc} A & B \\ 1 & 2 \\ {[x]}^2 & 4 \end{tabular} \end{table*} ``` --- ### 总结 `Missing number, treated as zero.` 是一种典型的 LaTeX 编译错误,其根源往往在于参数格式不正确、宏包冲突或语法结构不完整。通过逐一排查上述几种常见情况,可以有效定位并解决问题。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值