小工具知识网

当前位置: 首页 > 行业知识 > 【LeetCode】第 387 场周赛

行业知识

【LeetCode】第 387 场周赛

2026-11-09 19:46:52 来源:互联网转载

3069. 将元素分配到两个数组中 I

���你一个下标从 1 开始、包含 不同 整数的数组 nums ,数组长度为 n 。

()

你需要通过 n 次操作,将 nums 中的所有元素分配到两个数组 arr1 和 arr2 中。在第一次操作中,将 nums[1] 追加到 arr1 。在第二次操作中,将 nums[2] 追加到 arr2 。之后,在第 i 次操作中:

如果 arr1 的最后一个元素 大于 arr2 的最后一个元素,就将 nums[i] 追加到 arr1 。否则,将 nums[i] 追加到 arr2 。

()

通过连接数组 arr1 和 arr2 形成数组 result 。例如,如果 arr1 == [1,2,3] 且 arr2 == [4,5,6] ,那么 result = [1,2,3,4,5,6] 。

返回数组 result 。


复杂度:O(N)

class Solution {    public int[] resultArray(int[] nums) {        int n = nums.length;        List l1 = new ArrayList();        List l2 = new ArrayList();        l1.add(nums[0]);        l2.add(nums[1]);        for(int i=2; i            int i1 = l1.size()-1;            int i2 = l2.size()-1;            if(l1.get(i1)  l2.get(i2)) {                l1.add(nums[i]);            } else {                l2.add(nums[i]);            }        }                int[] res = new int[n];        int idx = 0;        for(int i=0; i            res[idx] = l1.get(i);            idx ++;        }                for(int i=0; i            res[idx] = l2.get(i);            idx ++;        }        return res;            }}    public int countSubmatrices(int[][] grid, int k) {        int m = grid.length;        int n = grid[0].length;        int[][] dp = new int[m][n];        // dp[0][0] = grid[0][0];        int ans = 0;        for(int i=0; i            int s = 0;            for(int j=0; j                s = s + grid[i][j];                dp[i][j] = s;                if(i-1=0) {                    dp[i][j] += dp[i-1][j];                }                if(dp[i][j]                     ans ++;                }            }                    }        return ans;    }}    public int minimumOperationsToWriteY(int[][] grid) {        int n = grid.length;         int[] y = new int[3];        int[] ny = new int[3];        boolean[][] vis = new boolean[n][n];        for(int i=0; i            vis[i][i] = true;        }        int idx = n/2;        for(int j=n/2; j            vis[idx][j] = true;            idx --;        }        idx = n/2;        for(int i=n/2; i            for(int j=0; j                if(vis[i][j]) {                    y[grid[i][j]] ++;                } else {                    ny[grid[i][j]] ++;                }            }        }                // for(int i=0; i        //     for(int j=0; j        //         System.out.print(vis[i][j] +" ");        //     }        //     System.out.println(" ");        // }//                        // for(int j=0; j               //      System.out.print(y[j] +" ");               //  }        int ans = n*n;        for(int i=0; i            for(int j=0; j                if(i!=j){                 //   System.out.println(n*n-y[i]+ny[j]);                    ans = Math.min(ans, n*n-y[i]-ny[j]);                }             }        }        return ans;            }}    public final int[] tree;    public Fenwick(int n) {        tree = new int[n];    }    public void add(int idx) {        while(idx            tree[idx] ++;            idx += idx & -idx;        }    }    public int sum(int i) {        int res =0;        while(i0) {            res += tree[i];            i -= i& -i;        }        return res;    }}class Solution {    public int[] resultArray(int[] nums) {        int[] sorted = nums.clone();        Arrays.sort(sorted);        int n = nums.length;                Fenwick ta = new Fenwick(n+1);        Fenwick tb = new Fenwick(n+1);        List            // 找到对应的映射            int v1 = Arrays.binarySearch(sorted, nums[i]) +1;            int gc1 = a.size() - ta.sum(v1);            int gc2 = b.size() - tb.sum(v1);            if(gc1gc2 || gc1==gc2 && a.size()                a.add(nums[i]);                ta.add(v1);            } else {                b.add(nums[i]);                tb.add(v1);            }        }        for(int num:b) {           a.add(num);         }                int[] res = new int[n];        for(int i=0; i            res[i] = a.get(i);        }        return res;    }}

上一篇:宝塔面板怎么下载套件?

下一篇:springboot解决XSS存储型漏洞