zoukankan      html  css  js  c++  java
  • 论一道编程面试题解法

    前言

    今天面试的时候,面试官出了一道需手写的编程题。一个集合List<Integer> ,存储的值在(0~100),求所有的x+y=100的组合。并打印出来。题目不难,平时面向IDE编程,且当时时间比较紧急,当时没有写好。在家调试,写了两种解法,如下。(一个非递归,一个递归)测试通过

    解法

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    
    /**
     * @author LWX-PC
     * @version 1.0
     * @class Main
     * @date 2019/8/29 19:03
     * @description
     */
    public class Main {
        public static void main(String[] args) {
            Integer[] arr=new Integer[]{0,22,100,67,1,99,1,99,55,66,45};
            System.out.println(Arrays.toString(arr));
    //printNum(Arrays.asList(arr));
            printNum2(new ArrayList<Integer>(Arrays.asList(arr)));
        }
    
        public static void printNum(List<Integer> list){
            List<Integer> indexs=new ArrayList<>();
           out:for(int i=0,length=list.size();i<length-1;i++){
                if(!indexs.contains(i)){
                    int temp=list.get(i);
                    for(int j=i+1;j<length;j++){
                        if(!indexs.contains(j)){
                            int temp2=list.get(j);
                            if((temp+temp2)==100){
                                indexs.add(i);
                                indexs.add(j);
                                System.out.println(indexs);
                                System.out.println(temp + "+" + temp2 + "=100");
                                continue out;
                            }
                        }
                    }
                }
            }
        }
    
    
        public static  void printNum2(List<Integer> list){
            boolean flag=false;
            if(list.size()>=2){
                out:for(int i=0,length=list.size();i<length-1;i++){
                    int temp=list.get(i);
                    for(int j=i+1;j<length;j++){
                        int temp2=list.get(j);
                        if((temp+temp2)==100){
                            System.out.println(temp + "+" + temp2 + "=100");
                            list.remove(i);
                            list.remove(j-1);
                            flag=true;
                            break out;
                        }
                    }
                    if(!flag){
                        list.remove(i);
                        break out;
                    }
                }
                printNum2(list);
            }
        }

     

     每一次被虐都是打怪升级的过程

  • 相关阅读:
    2021软件工程-第一周作业01准备工作
    String.matches()的用法
    Idea使用JSP出现404问题---已解决
    如何解决Tomcat启动闪退现象(环境配置没问题)
    解决启动java的web项目时端口占用问题
    IntelliJ IDEA 连接数据库 详细过程-包含使用jdbc连接数据库
    ApplicationContextAware接口认识
    RestTemplate 服务间接口调用
    maven相关
    FastJson:json字符串与Java对象转换
  • 原文地址:https://www.cnblogs.com/geduocoding/p/11431794.html
Copyright © 2011-2022 走看看