HDU 2141 Can you find it?

问题链接:http://vjudge.net/problem/viewProblem.action?id=18481

简单的二分查找,具体做法网上已经有很多了,我就简单叙述一下:

         1,首先是二分查找:所谓二分查找,实际就是在需要查找的序列中(升序或者降序) ,每次对该序列进行对半均分为两个序列,判断需要查找的目标数 X 处于哪个序列中,更新这个序列下标成为新的查找序列,重复以上操作。

         2,这里因为有三个数组L  ,N,  M  所以我们可以先将数组  L,   N  通过加运算合并为一个数组 num[ ],目标数 X 与 M 合并为一个目标数数组 ax[ ] ,即可运用二分进行查找

          下面是前辈给的二分查找代码,可放入自己的代码库,方便以后调用:

int main()
{
    int x;
    while(cin>>x)
    {
        int L,R,mid;
        L=0;R=9;
        while(L
   
   
    
    =x) R=mid; 
            else L=mid+1;
        }
        if (num[L]==x){
            cout<<"The x is find in "<
    
    
     
     <
     
     
      
       x){
                R = mid-1;
            }else
                L = mid+1;
        }

    }
}

     
     
    
    
   
   
        

         这个问题其实实现二分查找并没有让我头疼,让我比较蛋疼的是输出格式的设置。而且我也没找到有前辈用Java编写这道题目的(可能Java编写需要代码多,耗时大?我遇到的二分题目从来还没有看到有Java编写的代码)


下面是我的Java代码:

import java.util.*;

public class HDU2141_BS {

	/**
	 * @param args
	 */
	static final Scanner scan=new Scanner(System.in);
	static int l,n,m,s,sx,k,mid;
	static int[] al;
	static int[] an;
	static int[] am,ax;
	static int[] num;
	static String st;
	
	
	public void find(int start,int end,int x){    //二分查找代码
		
		while(start
   
   
    
    =x)end=mid;
			else start=mid+1;
						
		}
		if(num[start]==x) 
			 st="YES";	
	}
	public static void main(String[] args) {     //输出格式设置
		// TODO Auto-generated method stub
		int ca=1;
		while(true){
			k=0;
			l=scan.nextInt();
			n=scan.nextInt();
			m=scan.nextInt();
			al=new int[l];
			am=new int[m];
			ax=new int[m];
			an=new int[n];
			num=new int[l*n];
			for(int i=0;i
    
    
     
     num[k-1]||ax[i]
     
     
    
    
   
   
其实我这个代码并没有提交成功,出现了WA,但我确实没找出原因,如我有大神知道原因,希望告诉小弟一下可怜


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值