字节9.3前端笔试编程题

  1. 小红拿到长度为n的数组,陡峭值是相邻两数差的绝对值之和,求只修改第i个元素,让f(i)最小的各个陡峭值

     import java.util.Scanner;
    
     public class Main {
         public static void main(String[] args) {
             Scanner in = new Scanner(System.in);
             int n = in.nextInt();
             long[] nums = new long[n];
             for (int i = 0; i < n; i++) {
                 nums[i] = in.nextLong();
             }
             if (n == 1) {
                 System.out.print("0");
                 return;
             }
             long count = 0; // 默认陡峭值
             for (int i = 1; i < n; i++) {
                 count += Math.abs(nums[i] - nums[i - 1]);
             }
             long[] result = new long[n];
             for (int i = 0; i < n; i++) {
                 if (i == 0) {
                     result[i] = count - Math.abs(nums[i + 1] - nums[i]);
                 } else if (i == n - 1) {
                     result[i] = count - Math.abs(nums[i - 1] - nums[i]);
                 } else {
                     long temp = Math.abs(nums[i] - nums[i - 1]) +
                             Math.abs(nums[i] - nums[i + 1]) -
                             Math.abs(nums[i - 1] - nums[i + 1]);
                     result[i] = count - temp;
                 }
             }
    
             for (int i = 0; i < n; i++) {
                 System.out.print(result[i] + " ");
             }
         }
     }
    
  2. 小红的字符串构造,每个小写字母都要出现至少两次,而且相同字母的最小距离刚好是k。

     const fun = function (k) {
         const arr = [
             'a', 'b', 'c', 'd', 'e',
             'f', 'g', 'h', 'i', 'j',
             'k', 'l', 'm', 'n', 'o',
             'p', 'q', 'r', 's', 't',
             'u', 'v', 'w', 'x', 'y',
             'z',
             'a', 'b', 'c', 'd', 'e',
             'f', 'g', 'h', 'i', 'j',
             'k', 'l', 'm', 'n', 'o',
             'p', 'q', 'r', 's', 't',
             'u', 'v', 'w', 'x'
         ]
         let pos = 0
         let str = ''
         while (pos < 26) {
             const temp = arr.slice(pos, pos + k).join("")
             str += temp + temp
             pos += k
         }
         console.log(str)
     }
    
     fun(1)
     fun(2)
     fun(3)
     fun(4)
    
#字节##笔试##前端#
全部评论
第一题0.6原来是没用long存
点赞 回复 分享
发布于 2023-09-03 21:56 上海

相关推荐

02-12 17:30
已编辑
字节跳动_实习生(实习员工)
要怎么办呢牛:我觉得大厂日常实习最大的意义就是给自己背书,一个好公司的实习就像一个好学历似的,能够给自己增加一个标签,让别人觉得你可以。(至于真正实习干了啥,这个感觉并不太重要)。当然一家之言,仅供参考。另外,楼主已经很强了,实习毕业双双拿下,已经领先好多好多人了,羡慕啊
点赞 评论 收藏
分享
评论
7
13
分享

创作者周榜

更多
牛客网
牛客企业服务