首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    小于 n 的最大数

    从高位开始遍历,对每一位先尝试使用相同数字,除了最后一位。如果没有相同的数字时,尝试是否有比当前数字更小的,有的话选更小的数字里最大的,剩下的用最大数字。都没有就向前回溯看前一个有没有更小的。...如果一直回溯到第一个数字都没有更小的数字,就用位数更少的全都是最大数字的数。 5.实现示例 5.1 C++ 5.2 Golang // getMaxDigitLtD 获取小于指定数字的数字。..., ok := m[ndigits[i]]; ok { tdigits[i] = ndigits[i] continue } // 存在小于当前位的最大数字...ndigits[i]); d > 0 { tdigits[i] = d break } } if i == 0 { // 存在小于当前数字的最大数字...digits, ndigits[i]); d > 0 { tdigits[i] = d break } // 最高位也没有小于其的最大数字

    5K11

    图解「小于 K 的两数之和 」

    者 | P.yh 来源 | 五分钟学算法 题目描述 题目来源于 LeetCode 上第 1099 号问题:小于 K 的两数之和。...给你一个整数数组 A 和一个整数 K,请在该数组中找出两个元素,使它们的和小于 K 但尽可能地接近 K,返回这两个元素的和。 如不存在这样的两个元素,请返回 -1。...示例 1: 输入:A = [34,23,1,24,75,33,54,8], K = 60 输出:58 解释: 34 和 24 相加得到 58,58 小于 60,满足题意。...示例 2: 输入:A = [10,20,30], K = 15 输出:-1 解释: 我们无法找到和小于 15 的两个元素。...那么就需要考虑如何使用排序加双指针的方法来解决这个问题,这里,题目是要求小于 target 的数量,我们还是按照之前的分析思路来分析。

    1.2K20
    领券