训练营四期
1 | 给定一个数组arr,再给定一个k值 |
1 | //思路如同数组累加和三连的第三题 |
1 | 给定一个二维数组matrix,再给定一个k值 |
1 | 思路: |
1 | 给定一个二维数组matrix,可以从任何位置出发,每一步可以走向上、下、左、右,四个方向。返回最大递增链的长度。 |
1 | 思路: |
1 | public static int maxPath2(int[][] matrix) { |
1 | 给定一个字符类型的二维数组board,和一个字符串组成的列表words。 |
1 | 思路: |
1 | public static List<String> findWords(char[][] board, String[] words) { |
1 | public static class TrieNode { |
1 | 给定两个字符串S和T,返回S子序列等于T的不同子序列个数有多少个? 如果得到子序列A删除的位置与得到子序列B删除的位置不同,那么认为A和B就是不同的。 |
1 | 思路: |
1 | 给定一个二维数组 map,含义是一张地图,例如,如下矩阵: |
1 | 思路: |
1 | public static int needMin(int[][] matrix) { |
1 | 给定一个矩阵matrix,先从左上角开始,每一步只能往右或者往下走,走到右下角。然后从右下角出发,每一步只能往上或者往左走,再回到左上角。任何一个位置的数字,只能获得一遍。返回最大路径和。 |
1 | 思路: |
1 | // 从matrix左上角,走到右下角,过程中只能向右或者向下 |
1 | 给定一个无序数组arr,返回如果排序之后,相邻数之间的最大差值 |
1 | 思路: |
1 | public static int maxGap(int[] nums) { |
1 | 假设所有字符都是小写字母. 长字符串是str |
1 | 思路: |
1 | //解法一: |
1 | //解法二 |
1 | 给定一棵二叉树的头节点head,和一个数K |
1 | 思路: |
1 | public static int ans = 0; // 收集累加和为K的,最长路径有多少个节点 |
1 | 给定一个int类型的数组arr,已知除了一种数只出现1次之外, |
1 | 思路: |
1 | public static int onceNum(int[] arr, int k) { |
1 | 给定一个数组arr,如果有某个数出现次数超过了数组长度的一半,打印这个数,如果没有不打印 |
1 | 思路: |
1 | public static void printHalfMajor(int[] arr) { |
1 | 给定一个数组arr和整数k,arr长度为N,如果有某些数出现次数超过了N/K,打印这些数,如果没有不打印 |
1 | 思想: |
1 | public static void printKMajor(int[] arr, int K) { |
1 | 数组arr代表每一个咖啡机冲一杯咖啡的时间,每个咖啡机只能串行的制造咖啡。 |
1 | 思路: |
1 | public static class CoffeeMachine{ |
1 | 给定两个整数数组A和B |
1 | 思路: |
1 | public static int findKthNum(int[] arr1, int[] arr2, int kth) { |
1 | 约瑟夫环问题 |
1 | 思路: |
1 | public static Node josephusKill2(Node head, int m) { |
1 | 给定一个 N×3 的矩阵 matrix,对于每一个长度为 3 的小数组 arr,都表示一个大楼的三个数 据。 |
1 | 思路: |
1 | // 描述高度变化的对象 |
1 | Nim博弈问题 |
1 | 思路: |
1 | 给定一个数组arr,长度为N且每个值都是正数,代表N个人的体重。再给定一个正数 limit,代表一艘船的载重。 |
1 | 思路: |
1 | // 请保证arr有序 |
1 | 给定一个字符串str,求最长回文子序列长度 |
1 | 思路: |
1 | 给定一个二维数组matrix,每个单元都是一个整数,有正有负。 |
1 | 思路: |
1 | // 从假想的最优左侧到达(i,j)的旅程中 |
1 | 给定一个字符串str,str表示一个公式,公式里可能有整数、加减乘除符号和左右 括号,返回公式的计算结果。 |
1 | 思路: |
1 | public static int getValue(String str) { |
1 | 对于一个字符串, 从前开始读和从后开始读是一样的, 我们就称这个字符串是回文串。 |
1 | 思路: |
1 | public static int way1(String str) { |
1 | 给定一个正数1,裂开的方法有一种,(1) 给定一个正数2,裂开的方法有两种,(1和1)、(2) 给定一个正数3,裂开的方法有三种,(1、1、1)、(1、2)、 |
1 | 思路: |
1 | //暴力递归 |
1 | //改动态规划 |
1 | //优化动态规划的枚举行为 |
1 | public static int ways3(int n) { |
1 | 给定一个正数N,代表你有1~N这些数字。在给定一个整数K。 |
1 | 思路: |
1 | public static int dp1(int N, int K) { |
1 | //优化枚举行为 |
1 | 给定一棵二叉树的头节点head,已知所有节点的值都不一样,返回其中最大的且符 合搜索二叉树条件的最大拓扑结构的大小。 |
1 | public static class Node { |
1 | 给定一个长度为偶数的数组arr,长度记为2*N。前N个为左部分,后N个为右部分。 arr就可以表示为{L1,L2,..,Ln,R1,R2,..,Rn}, 请将数组调整成{R1,L1,R2,L2,..,Rn,Ln}的样子。 |
1 | 思路: |
1 |
|
1 | 一个不含有负数的数组可以代表一圈环形山,每个位置的值代表山的高度。 |
1 | 思路: |
最后更新: 2021年02月21日 23:44
原始链接: https://midkuro.gitee.io/2020/11/01/algorithm-trainingcamp4/