zoukankan      html  css  js  c++  java
  • args4 1.4.12 编写一个程序,有序打印给定的两个有序数组(含有N 个int 值)中的所有公共元素,程序在最坏情况下所需的运行时间应该和N 成正比。

    题目要求在最坏的时候和N成正比,我们要利用好这两个有序的数组,我的思路是给两个游标,相等的时候同时移动,

    不相等的时候单方移动,这边我直接就牺牲空间,创建两栈,思路可以更清晰点,相等时同时出栈,不相等时,数值大的出栈

    public static void q1_4_12(int[] a, int[] b) {
            java.util.Stack<Integer> stackA = new java.util.Stack<>();
            java.util.Stack<Integer> stackB = new java.util.Stack<>();
            for (int i = 0; i < a.length; i++) {
                stackA.push(a[i]);
                stackB.push(b[i]);
            }
            while ((!stackA.empty()) && (!stackB.empty())) {
                if (stackA.peek().equals(stackB.peek())) {
                    System.out.println(stackA.peek());
                    stackA.pop();
                    stackB.pop();
                } else if (stackA.peek() < stackB.peek()) {
                    stackB.pop();
                } else {
                    stackA.pop();
                }
    
            }
    
        }
  • 相关阅读:
    PHP调试总结
    vim常用命令
    Xshell
    JavaScript
    HTML+CSS
    解决VMware“该虚拟机似乎正在使用中”问题
    MVC dirname(——FILE——)
    各种编程语言中的指针和引用
    Go defer 原理和源码剖析
    软件架构定义的流派
  • 原文地址:https://www.cnblogs.com/junalncer/p/12765646.html
Copyright © 2011-2022 走看看