zoukankan      html  css  js  c++  java
  • 讯飞场景算法(Java实现)

    <一>找数字

    题目描述:

        在给定的一串字符串中找出数字,并且按照升序排列。

    样例输入:

      “我的天1456ndeno6265”;

    样例输出:

     12455666

    代码如下:

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    import java.util.Scanner;
    
    public class Main2 {
    
    	public static void main(String[] args) {
    		Scanner in = new Scanner(System.in);
    		String str = in.next();
            
            List<Integer> list = new ArrayList<>();
            
            for(int i = 0;i < str.length();i++){
                char ch = str.charAt(i);
                if(ch >= '0' && ch <= '9') {
                	list.add(Integer.valueOf(String.valueOf(ch)));
                }
            }
            Collections.sort(list);
            for(Integer inte : list) {
            	System.out.print(inte);
            }
            if(list.size() == 0) {
            	System.out.print(-1);
            }
    	}
    
    }
    

     <二>二分查找

    题目描述:给定一个有序的数组,用递归的二分查找算法找到其中的一个值,若有这个值输出它的下标,若没有则输出-1。

    样例输入;

      {11 15 18  19 26 54 87}  找19

    样例输出:

      true

    代码如下:

    import java.util.Scanner;
    
    public class Main3 {
    
    	public static void main(String[] args) {
    		
    		   Scanner scanner = new Scanner(System.in);
    		   
    		   int N = scanner.nextInt();
    	       String  str = scanner.next();
    	        
    	        str = str.substring(1,str.length()-1); //去掉{};
    	        String[] split = str.split(",");
    	        
    	        int[] arrInt = new int[split.length];
    	        for (int i = 0; i < split.length; i++) {
    	            arrInt[i] = Integer.valueOf(split[i]);
    	        }
    	        System.out.println(search(arrInt,0,arrInt.length-1,N)+1);
    	    }
    
    	    public static int search(int[] array,int start,int end,int n){
    	        if(end==start){
    	            return array[end]==n?end:-1;
    	        }
    	        int mid = (end+start)/2;
    	        if(array[mid]>n){
    	            int nend = mid-1;
    	            nend = nend<0?0:nend;
    	            return search(array,start,nend,n);
    	        }
    	        if(array[mid]<n){
    	            return search(array,mid+1,end,n);
    	        }
    	        if(array[mid]==n){
    	            return mid;
    	        }
    
    	        return -1;
    
    	}
    
    }
    
  • 相关阅读:
    windows服务等获取文件路径文件目录方法
    推荐几款很棒的 JavaScript 表单美化和验证插件
    在网站制作中随时可用的10个 HTML5 代码片段
    SQLServer数据排序
    SQL Join的一些总结
    3.14(链表练习)
    链表
    基数排序
    hdu-1198(并查集)
    hdu-1207(规律推导)
  • 原文地址:https://www.cnblogs.com/youdiaodaxue16/p/11368681.html
Copyright © 2011-2022 走看看