plus-one java

题目描述


Given a number represented as an array of digits, plus one to the number.


题目大意

  给定一个用数组表示的一个数,对它进行加一操作。 
  每一个数位都存储在数组的一个位置上。数组下标从大到小表示数位从低位到高位。 

解题思路

  直接求解,设置一个进位标志carry,初值为1,表示加1,从最低位开始tmp = a[x] + carry, 
a[x] = tmp%10,carry = tmp/10,如果carry不为0对下一位再进行操作,直到所有的数位处理完或者carray为0就退出,如果最后还有carray不为0说明整个数组要扩展一个数位。 

代码:

package com.leetcode;

public class PlusOne {

	public int[] plusOne(int[] digits) {

		int carry = 1; // 进位标志,下一位来的进位标志
		int tmp;
		for (int i = digits.length - 1; i >= 0; i--) {
			tmp = digits[i];
			digits[i] = (tmp + carry) % 10; // 计算当前位的新值
			carry = (tmp + carry) / 10; // 计算新的进位

			if (carry == 0) { // 没有进位了就可以退出了
				break;
			}
		}

		if (carry == 1) { // 最后还有一个进位
			int[] result = new int[digits.length + 1];
			System.arraycopy(digits, 0, result, 1, digits.length);
			result[0] = carry;
			
			return result;
		} else {
			return digits;
		}
	}

}



### MyBatis-Plus 中 `selectOne` 方法的使用教程 #### 方法概述 `selectOne` 是 MyBatis-Plus 提供的一个便捷方法,用于查询单条记录。它适用于通过唯一条件(如主键或其他唯一字段)查找数据的情况。如果查询结果超过一条,则会抛出异常[^1]。 #### 参数说明 该方法接受一个封装了查询条件的对象作为参数,通常是 `Wrapper` 接口的具体实现类(如 `QueryWrapper` 或 `LambdaQueryWrapper`)。这使得开发者可以灵活地构建复杂的查询逻辑。 #### 示例代码 以下是使用 `selectOne` 查询单条记录的示例: ```java import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.example.demo.entity.User; import com.example.demo.mapper.UserMapper; import org.springframework.beans.factory.annotation.Autowired; public class UserService { @Autowired private UserMapper userMapper; public void getUserById() { QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("id", 1); // 设置查询条件:id=1 User user = userMapper.selectOne(queryWrapper); System.out.println(user); } } ``` 上述代码展示了如何通过 `id` 字段查询用户表中的单条记录。需要注意的是,当存在多条符合条件的数据时,程序将抛出 `MybatisSystemException` 异常,并提示底层 SQL 错误信息。 #### 常见注意事项 1. **唯一性约束** 调用 `selectOne` 方法前应确保查询条件具有唯一性,否则可能导致运行时错误。 2. **返回值校验** 如果查询不到任何匹配的结果,`selectOne` 将返回 `null`。因此,在实际应用中建议对返回值进行判空处理。 3. **性能优化** 避免在高并发场景下频繁调用此方法执行复杂查询操作,以免影响系统性能[^2]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值