首页 > 其他分享 >leetcode-66-easy

leetcode-66-easy

时间:2022-10-11 18:12:58浏览次数:39  
标签:digits return easy int result2 length result 66 leetcode

Plus One
思路一: 暴力,方向想错了,不能把 digits 当做一个整数看

public int[] plusOne(int[] digits) {
    if (digits[digits.length - 1] != 9) {
        digits[digits.length - 1]++;
        return digits;
    }

    int[] result = new int[digits.length + 1];

    int i = digits.length - 1;
    while (i >= 0 && digits[i] == 9) {
        result[i+1] = 0;
        i--;
    }

    if (i >= 0) {
        result[i+1] = digits[i] + 1;
        i--;

        while (i >= 0) {
            result[i + 1] = digits[i];
            i--;
        }

    } else {
        result[0] = 1;
    }

    if (result[0] == 0) {
        int[] result2 = new int[digits.length];
        System.arraycopy(result, 1, result2, 0, result2.length);
        return result2;
    }

    return result;
}

思路二: 模拟加法进位操作,在原数组上进行运算。
需要计算的数组完全分类,就两种情况

  • 全部是 9 ,直接返回 1 开头,其余位置为 0 的新数组
  • 有位置不是 9,对每个位置做进行判断,遇到无法进位时,直接 +1 返回结果
public int[] plusOne(int[] digits) {
    for (int i = digits.length - 1; i >= 0; i--) {
        if (digits[i] == 9) {
            digits[i] = 0;
        } else {
            digits[i] += 1;
            return digits;
        }
    }

    digits = new int[digits.length + 1];
    digits[0] = 1;

    return digits;
}

标签:digits,return,easy,int,result2,length,result,66,leetcode
From: https://www.cnblogs.com/iyiluo/p/16780091.html

相关文章

  • #yyds干货盘点# LeetCode 热题 HOT 100:最小覆盖子串
    题目:给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串""。 注意:对于t中重复字符,我们寻......
  • EasyCVR视频融合平台HLS播放协议配置的细节优化
    EasyCVR视频融合云服务支持海量视频汇聚管理,能兼容多类型的设备接入,平台可对前端接入设备进行统一管理,并能支持采用设备树对设备进行分组、分级、用户与角色权限管理,可支持......
  • LeetCode88.合并两个数组
    1.题目描述给你两个按非递减顺序排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你合并nums2到nums1中,使合并后的......
  • LeetCode 1195. Fizz Buzz Multithreaded
    原题链接在这里:https://leetcode.com/problems/fizz-buzz-multithreaded/题目:Youhavethefourfunctions:printFizz thatprintstheword "fizz" totheconsole......
  • JS_0066:date 相关方法 获取时间字符串 计算时间差
    1,获取时间字符串varnowdatestr=newDate().toLocaleDateString();获取时间格式如:2022/10/10 2,计算时间差$nowdate=date('Y-m-dH:i:s',time());$ret['leftday......
  • leetcode-394.字符串解码
    394.字符串解码publicStringdecodeString(Strings){Stack<Character>stack=newStack<>();for(charc:s.toCharArray()){if(c......
  • leetcode 785. Is Graph Bipartite判断二分图 (中等)
    一、题目大意存在一个无向图,图中有n个节点。其中每个节点都有一个介于0到n-1之间的唯一编号。给你一个二维数组graph,其中graph[u]是一个节点数组,由节点u......
  • 洛谷 P2766【网络流】【线性DP】
    摘自网络流\(24\)题官方题解。第一问:直接\(O(n^2)\)DP求解最长不下降子序列即可。第二问:使用类似于酒店之王的思想,将点\(i\)拆成两个点\(i_1\),\(i_2\)。然后......
  • Leetcode 33 -- 二分查找&&归约思想
    题目描述搜索旋转排序数组思路思路来源一个清晰的思路:这道题和平常二分法查找的不同就在于,把一个有序递增的数组分成了,两个递增的数组,我们需要做的就是判断这个......
  • leetcode-128. 最长连续序列
    128.最长连续序列首先去重,直接把数组装入set集合即可然后,设集合中的某个数为a。遍历集合set假如这个集合中,存在a-1,说明a不是一个序列的起始值,跳过如果不存在a......