在一个数组元素值递增的数组中插入一个元素值,要求按原来的规矩将它插入数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在一个数组元素值递增的数组中插入一个元素值,要求按原来的规矩将它插入数组相关的知识,希望对你有一定的参考价值。

参考技术A Integer [] m = 1,2,3,5,6; //原有序数组
ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(m));//出事数组列表
list.add(4); //插入数组元素
Collections.sort(list); //调用排序函数
for (Integer integer : list)
System.out.print(integer); //循环打印数组

在 for 循环中递增 JavaScript 对象中的值

【中文标题】在 for 循环中递增 JavaScript 对象中的值【英文标题】:Incrementing values in a JavaScript object in a for loop 【发布时间】:2022-01-13 20:26:36 【问题描述】:

要求返回第一个唯一值的特定问题(即在数组中只出现一次的值)。我的方法是创建一个 obj,其中键作为数组中的元素,值作为每个值出现次数的计数器。

function solution(arr) 
  let uniqueObj = 
  for (let i=0; i<arr.length; i++)
    if(uniqueObj[arr[i]] !== undefined)
      uniqueObj[arr[i]] = uniqueObj[arr[i]] + 1
    
    uniqueObj[arr[i]] = 1
  
  console.log(uniqueObj) 

solution([4,10,5,4,2,10])

//output  '2': 1, '4': 1, '5': 1, '10': 1 

为什么每次看到相同的键时值都不会增加?

【问题讨论】:

您正在使用 uniqueObj[arr[i]] = 1 将其重置为 1 该行应该在else 块中。 顺便说一句,您可以使用++ 来增加一个值,因此您不必将整个表达式写两次。 【参考方案1】:

在 if 语句之后,您将 uniqueObj[arr[i]] 重置为 1。当 uniqueObj 没有 arr[i] 的值时,您需要添加一个 else 子句:


if (uniqueObj[arr[i]] !== undefined) 
    uniqueObj[arr[i]] += 1;
 else  // add else block
    uniqueObj[arr[i]] = 1      


【讨论】:

以上是关于在一个数组元素值递增的数组中插入一个元素值,要求按原来的规矩将它插入数组的主要内容,如果未能解决你的问题,请参考以下文章

c# 数组 插入元素在数组的最前面 数组中原来的值依次向后排列

c#数组插入元素在数组的最前面数组中原来的值依次向后排列

剑指offer_旋转数组的最小元素

做一个递增的数组,同时修改数组

如何使 JavaScript 中每个元素的 map 函数的键值递增

一个数组有10个元素如何在第一个元素上插入一个0并且保证后面的元素值和排列顺序