java刷题遇到的各种错误集合
Published on 2022-11-17 23:00 in 暂未分类 with 林动

java刷题遇到的各种错误集合

    强制类型转换注意括号

    int x=(int)b%10;
    
    int x=(int)(b%10);
    

    Non Zero Exit Code
    可能是程序没法终止
    比如

    本应该while(q--){}
    写成了while(n--){}
    调试了半天才发现样例虽然过了,但是程序都没终止
    

    爆int 甚至爆long

    所以平时写循环(特别是以判断为目的的循环,尽可能地去考虑优化,不仅为时间,也为防止溢出)

    在循环加法中,特别是加速度增加的循环加法,需要考虑控制条件,
    将加法结果爆整数前结束循环
    例如
    for(int i=1;i<=n;++i)
    		{
    			m+=(m-a[i]);
    			if(m>ma)return true;//控制条件
    			if(m<0)return false;
    		}
    

    逆向循环写–i而不是++i !!! (比赛时就写错了,因为手机热点断网,没能改回来,血亏)

    for(int i=n;i>=1;--i)
    

    求逆序对的数量,计数的变量爆int…


    2022.1.18
    读一行的函数之前可能有上面的回车符还未读
    比如下面样例:
    读完数字后,不管是c++的getline()还是java的nextLine();都会读到3后面的回车符,因此需要先调用一次getline或者是nextline把这个回车符吸收掉,否则会出现错误

    3
    17:48:19 21:57:24
    11:05:18 15:14:23
    17:21:07 00:31:46 (+1)
    23:02:41 16:13:20 (+1)
    10:19:19 20:41:24
    22:19:04 16:41:09 (+1)
    

    2022.1.18
    循环嵌套时,写for(int j=0;j<4;++i)导致的死循环


    2022.1.19 写线段树时一个非常隐秘的错误,找bug找到怀疑人生。
    即build函数中,l==r时即叶节点初始化,他的sum应该=这个点的原数组的值,即tr[u].sum=w[r]//r或者l,但是容易写成w[u].//u是线段树的结点编号啊大哥

    static void build(int u,int l,int r)
    	{
    		tr[u]=new node();
    		tr[u].l=l;
    		tr[u].r=r;
    		if(l==r)tr[u].sum=w[r];
    		else
    		{
    			int mid=l+r>>1;
    			build(u<<1,l,mid);
    			build(u<<1|1,mid+1,r);
    			pushup(u);
    		
    

    2022.1.30
    递归时的中间变量声明为全局变量,会出现非常难调试的错误!!!!!
    写任何递归时都要注意递归的中间变量作用域!!!
    写任何递归时都要注意递归的中间变量作用域!!!
    写任何递归时都要注意递归的中间变量作用域!!!


    邻接表存储无向图时候,数组开的大小应该是边的两倍!!!!
    用邻接表还要考虑自环和重边的影响!!!

    2022.2.8
    自定义类型排序异常,但是代码看着没什么问题
    实际上因为Comparator里面有根据浮点数的比较来返回正负数。但是下面的x2-x1未加括号导致x2可能为0,k可能为无穷大。导致比较函数里面出现未定义的错误。

    double k=(double)(y2-y1)/x2-x1;
    
    double k=(double)(y2-y1)/(x2-x1);
    

    2021.2.16
    java和c++的char数组的输出方式不同

    java:
    s[]="123456";
    s[1]='\0';
    sout(s)会输出"1 3456"
    
    c++:
    s[]="123456";
    s[1]='\0';
    cout(s)会输出"1"
    

    未完待续

    posted @   林动  阅读(16)  评论(0编辑  收藏  举报
    相关博文:
    阅读排行:
    · winform 绘制太阳,地球,月球 运作规律
    · AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
    · 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
    · 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
    · 上周热点回顾(3.3-3.9)
    点击右上角即可分享
    微信分享提示