首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    剑指Offer(三十二)-- 数组排成最小

    题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个,打印能拼接出所有数字中最小一个。例如输入数组{3,32,321},则打印出这三个数字能排成最小数字321323。...示例1 输入 [3,32,321] 返回值 "321323" 解答 这道题要求拼起来是最小数字,其实是一个排序问题,只要理解了这一点,就可以快速解决。...像上面这种情况,要想拼接起来最小,肯定是s2在前面,s1在后面。 而在数组中,我们要使所有的拼接起来是最小,则需要两两比较,类似排序,把满足s1+s2>s2+s1s1放到后面,s2放到前面。...而排序算法有很多种,我们直接调用API,如果使用冒泡就是O(n2),内置函数是O(NlogN),最差时候是O(n2)。...String s : strs) res.append(s); return res.toString(); } } 当然,要是自己实现排序算法也是完全ok

    35720

    在其他都出现偶数次数组中找到出现次数奇数次

    参考自程序员代码面试指南 其他都出现偶数次数组中找到出现奇数次数字 整数n与0异或结果n,n与n异或结果0 public void printOddTimesNum1(int[] arrs...int x:arrs){ eO=eO^x; } System.out.println(eO); } 如果只有a和b出现了奇数次,那么最后eO...如果数组中出现了两个奇数次 最终eO一定不等于0。那么肯定可以在32位整数eO上找到一个不为0bit位。...假设是第k位不等于0, 说明a和b第k位一定是一个是0,一个是1,接下来再设置一个变量记为eHasOne,然后再遍历一次数组。 这次遍历时,eHasOne只和第k位是1整数异或,其他忽略。...那么在第二次遍历之后,eHasOne就是a或b中一个。 eO^eHasOne就是另一个出现奇数次

    79910

    C语言经典100例005-删除一数组中所有相同

    喜欢同学记得点赞、转发、收藏哦~ 后续C语言经典100例将会以pdf和代码形式发放到公众号 欢迎关注:计算广告生态 即时查收 1 题目 函数:fun() 功能:删除一数组中所有相同,使之只剩一个...描述:数组数据已经按照从小到大排列,函数返回删除后数组中元素个数 举例: 一数组数据是:2,2,2,2,3,3,4,4,5,6,6,6,7,7,8,9,9,9,10,10 删除后数组内容是... #include #define N 20 /\*\* 函数:fun() 功能:删除一数组中所有相同,使之只剩一个。...描述:数组数据已经按照从小到大排列,函数返回删除后数组中元素个数 举例: 一数组数据是:2,2,2,2,3,3,4,4,5,6,6,6,7,7,8,9,9,9,10,10 删除后数组内容是.../demo 删除后数组元素个数:9 -- END -- 喜欢本文同学记得点赞、转发、收藏~ 更多内容,欢迎大家关注我们公众号:计算广告生态 后续C语言经典100例将会以pdf和代码形式发放到公众号

    1.8K30

    漫画:如何在数组中找到和 “特定值” 三个

    前一段时间,我们介绍了LeetCode上面的一个经典算法题【两之和问题】。 这一次,我们把问题做一下扩展,尝试在数组中找到和“特定值”三个。 题目的具体要求是什么呢?...给定下面这样一个整型数组: ? 我们随意选择一个特定值,比如13,要求找出三之和等于13全部组合。...我们以上面这个数组例,选择特定值13,演示一下小灰具体思路: 第1轮,访问数组第1个元素5,把问题转化成从后面元素中找出和8(13-5)两个数: ? 如何找出和8两个数呢?...第3轮,访问数组第3个元素6,把问题转化成从后面元素中找出和7(13-6)两个数: ? 以此类推,一直遍历完整个数组,相当于求解了n次两之和问题。 ?     ...这样说起来有些抽象,我们来具体演示一下: 第1轮,访问数组第1个元素1,把问题转化成从后面元素中找出和12(13-1)两个数。 如何找出和12两个数呢?

    2.4K10

    2022-07-27:小红拿到了一个长度N数组arr,她准备只进行一次修改, 可以数组中任意一个arr,修改为不大于P正数(修改后必须和原不同)

    2022-07-27:小红拿到了一个长度N数组arr,她准备只进行一次修改, 可以数组中任意一个arri,修改为不大于P正数(修改后必须和原不同), 并使得所有数之和X倍数。...小红想知道,一共有多少种不同修改方案。 1 <= N, X <= 10^5。 1 <= arri, P <= 10^9。 来自网易。 答案2022-07-27: 求所有数字累加和sum。...= cnt(p, x, *num, (x - ((sum - *num) % x)) % x); } return ans; } // 当前数字num // 1~p以内,不能是num情况下...,% x == mod数字有几个 // O(1) fn cnt(p: i64, x: i64, num: i64, mod0: i64) -> i64 { // p/x 至少有几个 /...1 : 0 // 在不考虑变出来,是不是num情况下,算一下有几个数,符合要求 let ans = p / x + if (p % x) >= mod0 { 1 } else {

    1.4K30

    【算法题】输入一数组array和n,找出和值n任意两个元素

    题目描述 输入一数组array和n,找出和值n任意两个元素。例如: array = [2, 3, 1, 10, 4, 30] n = 31 则结果应该输出1, 30 顺序不重要。...package com.light.sword; /** * @author: Jack * 2021/4/21 下午7:51 * * 输入一数组array和n,找出和值n任意两个元素...(1)第一次比较:首先比较第一和第二个小数放在前面,大数放在后面。 (2)比较第2和第3个小数 放在前面,大数放在后面。......... (3)如此继续,知道比较到最后两个数,小数放在前面,大数放在后面,重复步骤,直至全部排序完成 (4)在上面一趟比较完成后,最后一个一定是数组中最大一个,所以在比较第二趟时候,最后一个是不参加比较...(5)在第二趟比较完成后,倒数第二个也一定是数组中倒数第二大,所以在第三趟比较中,最后两个数是不参与比较。 (6)依次类推,每一趟比较次数减少依次

    1.3K20

    Java练习题-输出二数组对角线元素和

    题目 Java求二数组主对角线元素和(主对角线是左上到右下一条线) 编程要求: (1)编写一个名为Test类; (2)定义3*3整形数组a,元素值{1,2,3,4,5,6,7,8,9}...; (3)定义整形变量i作为外层循环控制变量,定义整形变量j作为内层循环控制变量,循环初始值均从0开始; (4)定义整形变量sum存放累加和; (5)使用for语句、if语句完成程序功能,结果输出...; 实现思路 1.定义一个3*3数组a,元素值{1,2,3,4,5,6,7,8,9} // 定义一个3*3整数二数组 int[][] a = { {1, 2, 3},...a.length表示二数组a行数 (2)内层循环控制列 a[i].length表示当前行 a[i] 。...因为二数组每一行可以不同,所以我们使用 a[i].length 来获取当前行。 (3)在内层循环中,通过 if 语句判断当前元素是否在主对角线上。

    28030

    2022-04-14:小美有一个长度n数组, 为了使得这个数组和尽量大,她向会魔法小团进行求助。 小团可以选择数组中至多两个不相交数组, 并将区间里全都变为原来10倍。...小团想知道他魔法最多可以帮助小美数组和变大到多少?

    2022-04-14:小美有一个长度n数组, 为了使得这个数组和尽量大,她向会魔法小团进行求助。 小团可以选择数组中至多两个不相交数组, 并将区间里全都变为原来10倍。...小团想知道他魔法最多可以帮助小美数组和变大到多少? 来自美团。 答案2022-04-14: 动态规划。 时间复杂度:O(N)。 空间复杂度:O(N)。 代码用rust编写。代码如下: #!...// 可能性1:就是没有10倍区域,那就是arr[0..i]累加和, 这个好弄!...// magic[j]:arr[0..j]范围上,j一定要在10倍区域里,并且只有一个10倍区域情况下,最大累加和 // 可能性1:只有arr[j]是10倍,arr[0..j-1]没有10倍...// 可能性1:就是没有10倍区域,那就是arr[0..i]累加和, 这个好弄!

    1.5K10
    领券