您当前的位置: 首页 >  Java

孑渡

暂无认证

  • 2浏览

    0关注

    178博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

蓝桥杯刷题JAVA(3)

孑渡 发布时间:2021-03-28 09:26:03 ,浏览量:2

  1. 移除元素

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

class Solution {
    public int removeElement(int[] nums, int val) {
        if(nums.length == 0)
            return 0;
        if(nums.length == 1)
            if(nums[0] == val)
                return 0;
            else
                return 1;
        int length = 0;
        
        for(int index = 0; index = 0; i--) {
            if (s.charAt(i) != ' ') {
                length++;
            } else if (length != 0) {
                return length;
            }
        }
        return length;
    }
}

经验: 年轻的人还在倒序遍历找,直接split冲锋完事儿。第二版本的代码可以判断尾部空格,比较巧妙

7.加一

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。

class Solution {
    public int[] plusOne(int[] digits) {
    	if(digits.length == 1 && digits[0] != 9)
    		return new int[] {digits[0] + 1};
    	else if(digits.length == 1 && digits[0] == 9)
    		return new int[] {1, 0};
        int alert = 0;
    	int i = digits.length - 1;
    	digits[i] = (digits[i] + 1) % 10;
    	if(digits[i] == 0)
			alert = 1;
		else
			alert = 0;
    	i--;
    	while (alert > 0 && i >= 0) {
    		digits[i] = (digits[i] + alert) % 10;
        	if(digits[i] == 0) {
        		alert = 1;
        		i--;
        	}else
    			alert = 0;        	
		}
    	if(i             
关注
打赏
1663211900
查看更多评论
0.0463s