华为OD加面 - 手撕代码真题(Java)

这是一道华为OD面试中的手撕代码题,要求将一个六位正整数拆分为两个数,使它们的和尽可能小。具体来说,需要将输入的六位数拆分成两个整数,这两个整数可以有前导0,并且必须使用所有数位。例如,给定数字291325,可能的拆分组合有[122, 359]等,目标是找到这样的拆分使得两数之和最小。示例中,当num为291325时,最小和为364,当num为400935时,最小和为84。" 109349561,9772450,Java JDBC:数据库操作与事务控制,"['数据库开发', 'JDBC', 'Java', 'SQL注入防御', '事务管理', '连接池']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

给你一个六位 正 整数 num 。请你使用 num 中的 数位 ,将 num 拆成两个新的整数 new1 和 new2 。

new1 和 new2 中可以有 前导 0 ,且 num 中 所有 数位都必须使用。

比方说,给你 num = 291325 ,你拥有的数位包括:两个 2 ,一个 9 ,一个1,一个 3和一个5 。

一些可能的 [new1, new2] 数对为 [122, 359],[123, 259],[2235, 19] 和 [2, 13259] 。

请你返回可以得到的 new1 和 new2 的 最小 和。

示例 1:

输入:num = 291325
输出:364
解释:可行的 [new1, new2] 数对为 [129, 235] ,[223, 915] 等等。
最小和为数对 [129, 235] 的和:129 + 235 = 364 。

示例 2:

输入:num = 400935
输出:84
解释:可行的 [new1, new2] 数对为 [0, 3549] ,[3490, 50] 等等。
最小和为数对 [35, 49] 的和:35 + 49 = 84

import java
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

什码情况

你的鼓励就是我最大的动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值