m0_56789428 2023-05-31 17:11 采纳率: 97.4%
浏览 26
已结题

数组的创建问题,和计算问题

数组的创建问题,和计算问题
1.数组长度为 days数值可能会很大,用哪个数组创建比较好?
2.创建一个数组,长度为days ,a+b为一个周期,前a个为0,b个为1。这个数组怎么创建?
举例:day = 20;a=3,b=2. 结果 [0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1]


LinkedList<Integer>[] List = new LinkedList[days]; //这么创建数组对吗?
                int a = 3;
                int b = 2;
  • 写回答

3条回答 默认 最新

  • 断水流大撕兄 HarmonyOS创作领域新星创作者 2023-05-31 17:21
    关注
    1. 如果days的值很大,使用动态数组比较好,如ArrayList。因为静态数组长度固定,如果days很大会占用很多内存空间,而动态数组长度可以根据需要增长,节省空间。
    2. 可以使用以下代码创建该数组:
    int[] arr = new int[days];
    for (int i = 0; i < days; i++) {
        if (i < a) {
            arr[i] = 0;
        } else if ((i - a) % (a + b) < b)  {
            arr[i] = 1; 
        } else {
            arr[i] = 0;
        } 
    }
    

    这段代码创建一个长度为days的数组arr。然后使用循环根据a和b的值设置数组中的元素:前a个元素设置为0;
    第a到a+b-1个元素设置为1;
    之后的元素循环设置为a个0然后b个1,直到设置完所有元素。例如days=20,a=3,b=2,最终结果为:
    [0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1]所以动态数组+循环设置的方法可以很好地创建您需要的数组。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月1日
  • 已采纳回答 5月31日
  • 创建了问题 5月31日

悬赏问题

  • ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
  • ¥15 android 集成sentry上报时报错。
  • ¥50 win10链接MySQL
  • ¥35 跳过我的世界插件ip验证
  • ¥15 抖音看过的视频,缓存在哪个文件
  • ¥15 自定义损失函数报输入参数的数目不足
  • ¥15 如果我想学习C大家有是的的资料吗
  • ¥15 根据文件名称对文件进行排序
  • ¥15 deploylinux的ubuntu系统无法成功安装使用MySQL❓
  • ¥15 有人会用py或者r画这种图吗