问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

把数组中的数拼接起来,求最大值

发布网友 发布时间:2022-04-25 07:12

我来回答

3个回答

懂视网 时间:2022-05-19 12:12

前言

最近在工作碰到一个问题,就是用javascript求数组中所有数字能拼接出的最大整数,数组的每一项为单独的拼接项,不能再拆开,例如[2,34]中2和34分别为要被拼接的数字,而不是说34还能继续拆分为3和4。

具体需求为,将[7,321,35,4]拼接为7435321。下面话不多说了,来一起看看详细的实现方法吧。

我设计的算法如下:

function insertSort(arr) {
 let res = [arr[0]];
 for (let i = 1, len = arr.length; i < len; i++) {
 let temp = arr[i];
 for (let j = i - 1; j >= 0; j--) {
 if (!compareNum(res[j],temp)) {
 res[j + 1] = res[j];
 res[j] = temp;
 } else {
 res[j + 1] = temp;
 break;
 }
 }
 }
 return res;
}
function compareNum(a,b) {
 a =""+a;
 b = ""+b;
 let aLen=a.length;
 let bLen=b.length;
 let aIndex=0;
 let bIndex=0;

 while (aIndex<aLen && bIndex<bLen){
 let flag=false;
 if (a[aIndex]==b[bIndex]){
 aIndex+1<aLen && (aIndex++,flag=true);
 bIndex+1<bLen && (bIndex++,flag=true);
 }else{
 break;
 }
 if (!flag){
 break;
 }
 }
 if (a[aIndex]>b[bIndex]){
 return true;
 }else{
 return false;
 }
}
let arr=[5,2,1,38];
// let arr=[5,2,1,38,52,4,5,593,8,55,555,492,493,7,9,61,66,6];
// let arr=[5,2,1,38,52,4,5,593,61,6];

function toInt(arr) {
 let newArr=insertSort(arr);
 document.write(newArr);
 return newArr.join("");
}

let intNum=toInt(arr);
console.log(intNum);

总结

热心网友 时间:2022-05-19 09:20

[常见面试题]拼接最大数/最小数

// 把数组中的数拼接起来,求最大值(最小值)

// 拼接起来求最大/最小,本质上就是对数据进行一种特殊的排序,将待比较的两个数字进行拼接然后做比较

// 比如a,b 需要比较ab和ba的大小,从而得出a,b的大小

// 最大/最小已经在代码中注释出来了

#include<stdio.h>

int cmpfunc_ex(const void *a, const void *b)

{

    char str1[21] = {0};

    char str2[21] = {0};

    sprintf(str1, "%d%d", *(int *)a, *(int *)b);

    sprintf(str2, "%d%d", *(int *)b, *(int *)a);

    char *p1 = str1;

    char *p2 = str2;

    int result = strcmp(str1, str2);

    return (-result); // 求最大

    //return (result); // 求最小

}

 

int main(void)

{

    char result[200] = {0};

    char *p = result;

    int a[] = {3, 32, 321, 2, 1, 3};

    int nCount = sizeof(a) / sizeof(int);

    qsort(a, sizeof(a) / sizeof(int), sizeof(int), cmpfunc_ex);

    for (int i = 0; i < nCount; ++i) {

        sprintf(p, "%d", a[i]);

        p = &result[strlen(result)];

    }

    printf("%s\r\n", result);

    return 0;

}

热心网友 时间:2022-05-19 10:38

#include <stdio.h>
int main()
{
int i, j, n, max, num[100];
printf("输入整数个数:");
scanf("%d", &n);
printf("输入不同的整数:");
for(i = 0; i < n; i++){
scanf("%d", &num[i]);
}

j = 0;
max = num[0];
for(i = 1; i < n: i++){
if(num[i] > max){
max = num[i];
j = i;
}
}
printf("%d %d", j, max);
return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 华为p8按电源键无法开机也不能充电怎么办 玻璃自爆原因鱼骨图 华为p8不能开机了,怎么破? Python实现,输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接 c语言数字拼接成字符串 华为p8青春版手机不能开机怎么办 华为P8手机不能开机,是电池的坏了吗? 一头牛背上坐着一个人戴着帽子,帽子是个里字,请问其它七个是什么字? 鱼骨图的注意事项 大话3一转敏女妖应该穿怎么样的装备 C++中如何把数字和字符串拼接起来? Excel中怎么把文本与数字拼接? 帽子和衣服要如何搭配,才能起到和谐统一的效果? 按风水迷信属牛的人能带帽子吗 JAVA如何拼接数字 天天酷跑姐始祖耗牛配帽子先生 汽车配件质量问题优先减少计划鱼骨图分析法模板 C语言如何实现把两个整型数字拼接起来仍然是整型数字 一人骑着一头牛戴着一帽子猜一八字成语 Excel 如何拼接数字值不变? 质量管理七大工具 华为P8无法开机并且充电指示灯也不亮怎么办 C语言 拼数字 华为p8max手机无法开机怎么办 PHP中字符串与数字拼接起来,用什么方法? 大话西游3 平民全敏男妖如何打造。。(是平民最多一个2阶仙器)装备详细解说。 华为p8无法开机重复开机界面 腾龙在线客服电话是13114162570吗? 如何拼接字符串和数字 大话西游3女妖强牛到85%以上怎么配? 腾龙娱乐客服tenlongkefu是吗? int类型数字拼接,如 string a=&quot;04&quot; ;int b =int .Parse(a); 结果b=4;前面的0丢失,我需要怎么拼接 大话西游3强牛装备怎么搭配? 华为p8青春版开不了机了,怎么办? SQL怎么拼接数字 谁知道大力女魔的装备怎么搭配比较NB 学P图该怎么入手简单告诉我? 大话3敏妖强牛装110的护身符和腰带怎么配强牛属性的? 华为p8青春版开不开机了怎么办 大话西游3强牛女妖装备怎么配?