【Leetcode】- 第 29 场双周赛

简介: 【Leetcode】- 第 29 场双周赛

5432. 去掉最低工资和最高工资后的工资平均值

遍历数组,求出最大值和最小值,用(sum(数组之和)- max - min)/ 数组的长度-2

代码

class Solution {
   public double average(int[] salary) {
    double sum = 0;
    double max = salary[0];
    double min = salary[0];
    for (int i = 0; i < salary.length; i++) {
      if (max < salary[i]) {
        max = salary[i];
      }
      if (min > salary[i]) {
        min = salary[i];
      }
      sum = sum + salary[i];
    }
    double ave = (sum - max - min) / (salary.length - 2);
    return ave;
  }
}

5433. n 的第 k 个因子

直接暴力循环,将(n%i==0)的值存入数组中,最后用数组的长度和K来进行判断

代码

class Solution {
   public int kthFactor(int n, int k) {
    int[] array = new int[n];
    int num = 0;
    for (int i = 1; i <= n; i++) {
      if (n % i == 0) {
        array[num++] = i;
      }
    }
    if (num < k) {
      return -1;
    } else {
      return array[k - 1];
    }
  }
}

5434. 删掉一个元素以后全为 1 的最长子数组

正顺序遍历一遍数组,求出每个元素前面有多少个1

倒顺序遍历一遍数组,求出每个元素后面有多少个1

用Math,max()函数求出删除改元素,前面+后面的1,最后返回max

代码

public static int longestSubarray(int[] nums) {
    int[] array1 = new int[nums.length];
    int[] array2 = new int[nums.length];
    array1[0] = nums[0];
    for (int i = 1; i < nums.length; i++) {
      if (nums[i] == 1) {
        array1[i] = array1[i - 1] + 1;
      } else {
        array1[i] = 0;
      }
    }
    array2[nums.length - 1] = nums[nums.length - 1];
    for (int i = nums.length - 2; i >= 0; i--) {
      if (nums[i] == 1) {
        array2[i] = array2[i + 1] + 1;
      } else {
        array2[i] = 0;
      }
    }
    int max = 0 + array2[1];
    for (int i = 1; i < nums.length - 1; i++) {
      max = Math.max(max, array1[i - 1] + array2[i + 1]);
    }
    max = Math.max(max, array1[nums[nums.length - 1]] + 0);
    System.out.println(max);
    return max;
  }


相关文章
|
6月前
Leetcode第123场双周赛
在LeetCode的第123场双周赛中,参赛者需解决三个问题。第一题涉及根据给定数组构建三角形并判断其类型,如等边、等腰或不等边,代码实现通过排序简化条件判断。第二题要求找出满足差值为k的好子数组的最大和,解决方案利用前缀和与哈希表提高效率。第三题则需要计算点集中满足特定条件的点对数量,解题策略是对点按坐标排序并检查点对是否满足要求。
26 1
|
6月前
力扣双周赛 -- 117(容斥原理专场)
力扣双周赛 -- 117(容斥原理专场)
|
机器人
LeetCode 双周赛 106(2023/06/10)两道思维题
往期回顾:[LeetCode 单周赛第 348 场 · 数位 DP 模版学会了吗?](https://mp.weixin.qq.com/s/4aLHpyaLOUEHSaX2X8e5FQ)
87 0
LeetCode 双周赛 106(2023/06/10)两道思维题
|
算法 索引
LeetCode 双周赛 107(2023/06/24)滑动窗口与离散化
> **本文已收录到 [AndroidFamily](https://github.com/pengxurui/AndroidFamily),技术和职场问题,请关注公众号 \[彭旭锐] 和 \[BaguTree Pro] 知识星球提问。**
74 0
LeetCode 双周赛 107(2023/06/24)滑动窗口与离散化
|
边缘计算 缓存 算法
LeetCode 双周赛 102,模拟 / BFS / Dijkstra / Floyd
昨晚是 LeetCode 双周赛第 102 场,你参加了吗?这场比赛比较简单,拼的是板子手速,继上周掉大分后算是回了一口血 😁。
111 0
|
人工智能 算法 测试技术
LeetCode 双周赛 101,DP / 中位数贪心 / 裴蜀定理 / Dijkstra / 最小环
这周比较忙,上周末的双周赛题解现在才更新,虽迟但到哈。上周末这场是 LeetCode 第 101 场双周赛,整体有点难度,第 3 题似乎比第 4 题还难一些。
98 0
|
存储 数据安全/隐私保护
|
人工智能 算法 测试技术
LeetCode 双周赛 103(2023/04/29)区间求和的树状数组经典应用
这场周赛是 LeetCode 双周赛第 103 场,难得在五一假期第一天打周赛的人数也没有少太多。这场比赛前 3 题比较简单,我们把篇幅留给最后一题。
80 0