美文网首页
Java日记2018-06-13

Java日记2018-06-13

作者: hayes0420 | 来源:发表于2018-06-13 06:58 被阅读0次
    1. 扑克牌顺子
    public boolean isContinuous(int[] nums) {
        if (nums.length < 5)
            return false;
        Arrays.sort(nums);
        int cnt = 0;
        for (int num : nums)
            if (num == 0)
                cnt++;
        for (int i = cnt; i < nums.length - 1; i++) {
           //不是连续的,返回false
            if (nums[i + 1] == nums[i])
                return false;
            cnt -= nums[i + 1] - nums[i] - 1;
        }
        return cnt >= 0;
    }
    
    1. 圆圈中最后剩下的数
    public int LastRemaining_Solution(int n, int m) {
        if (n == 0)
            return -1;
        if (n == 1)
            return 0;
        return (LastRemaining_Solution(n - 1, m) + m) % n;
    }
    
    1. 股票的最大利润
    public class maxProfit {
        public static int max(int[] arr) {
            if(arr.length==0) return 0;
            int maxprofit=0;
            int min = arr[0];
            //循环从1开始,因为要使用最低的买入策略arr[0]
            for(int i=1;i<arr.length;i++) {
                //找到i-1次前的最小买入点,与当前的买入点
                min = Math.min(min, arr[i]);
                //找到i-1次前的最大买入,与当前的买入的比较
                maxprofit=Math.max(maxprofit, arr[i]-min);
            }
            
            return maxprofit;
        }
    

    相关文章

      网友评论

          本文标题:Java日记2018-06-13

          本文链接:https://www.haomeiwen.com/subject/sbpdeftx.html