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);
            }
        }

     

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

  • 相关阅读:
    runtime 01-类与对象
    iOS 远程推送的实现
    iOS 选取上传图片界面
    NSAssert
    TableView下拉cell
    此博客主人已搬家访问新家地址:http://write.blog.csdn.net/postlist
    教你如何快速集成第3方
    iPhone应用开发 UITableView学习点滴详解
    苹果Xcode 证书生成、设置、应用完整图文教程
    NSXMLParser解析xml格式
  • 原文地址:https://www.cnblogs.com/geduocoding/p/11431794.html
Copyright © 2011-2022 走看看