华为OD机试真题 - 最大股票收益

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String[] prices = in.nextLine().split(" ");
        int[] pricesTemp = changeToRMB(prices);
        System.out.println(getResult(pricesTemp));
    }

    public static int getResult(int[] prices) {
        int sum = 0;
        int price = 0;
        for (int i = 0; i < prices.length; i++) {
            if (isPeak(prices, i) &amp;&amp; price != 0)
                sum += prices[i] - price;
            if (isValley(prices, i))
                price = prices[i];
        }
        return sum;
    }

    public static int[] changeToRMB(String[] prices) {
        int[] pricesTemp = new int[prices.length];
        for (int i = 0; i < prices.length; i++) {
            if (prices[i].endsWith(&quot;Y&quot;))
                pricesTemp[i] = Integer.parseInt(prices[i].substring(0, prices[i].length() - 1));
            else
                pricesTemp[i] = Integer.parseInt(prices[i].substring(0, prices[i].length() - 1)) * 7;
        }
        return pricesTemp;
    }

    public static boolean isPeak(int[] prices, int i) {
        if (i == 0 &amp;&amp; prices[i + 1] < prices[i])
            return true;
        else if (i == 0)
            return false;
        if (i == prices.length - 1 &amp;&amp; prices[i - 1] < prices[i])
            return true;
        else if (i == prices.length - 1)
            return false;
        if (prices[i - 1] < prices[i] &amp;&amp; prices[i + 1] < prices[i])
            return true;
        return false;
    }

    public static boolean isValley(int[] prices, int i) {
        if (i == 0 &amp;&amp; prices[i + 1] > prices[i])
            return true;
        else if (i == 0)
            return false;
        if (i == prices.length - 1 &amp;&amp; prices[i - 1] > prices[i])
            return true;
        else if (i == prices.length - 1)
            return false;
        if (prices[i - 1] > prices[i] &amp;&amp; prices[i + 1] > prices[i])
            return true;
        return false;
    }
全部评论

相关推荐

&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Scanner&nbsp;scanner&nbsp;=&nbsp;new&nbsp;Scanner(System.in);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int[]&nbsp;price&nbsp;=&nbsp;Arrays.stream(scanner.nextLine().split(&amp;quot;&nbsp;&amp;quot;)).mapToInt(Integer::parseInt).toArray();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int[]&nbsp;newPrice&nbsp;=&nbsp;getLastPrice(price);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;newPrice.length;&nbsp;i++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(newPrice[i]&nbsp;+&nbsp;&amp;quot;&nbsp;&amp;quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;int[]&nbsp;getLastPrice(int[]&nbsp;price)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int[]&nbsp;newPrice&nbsp;=&nbsp;new&nbsp;int[price.length];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;price.length;&nbsp;i++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(i&nbsp;+&nbsp;1&nbsp;&lt;&nbsp;price.length&nbsp;&amp;amp;&amp;amp;&nbsp;price[i&nbsp;+&nbsp;1]&nbsp;&lt;&nbsp;price[i])&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newPrice[i]&nbsp;=&nbsp;price[i]&nbsp;+&nbsp;price[i&nbsp;+&nbsp;1];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newPrice[i]&nbsp;=&nbsp;price[i];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(newPrice[price.length&nbsp;-&nbsp;1]&nbsp;&gt;&nbsp;price[0])&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newPrice[price.length&nbsp;-&nbsp;1]&nbsp;+=&nbsp;price[0];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;newPrice;&nbsp;&nbsp;&nbsp;&nbsp;}
查看2道真题和解析 投递华为等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务