3202. Find the Maximum Length of Valid Subsequence II

 JAVA

  • class Solution {
        public int maximumLength(int[] nums, int k) {
            int[][] f = new int[k][k];
            int ans = 0;
            for (int x : nums) {
                x %= k;
                for (int j = 0; j < k; ++j) {
                    int y = (j - x + k) % k;
                    f[x][y] = f[y][x] + 1;
                    ans = Math.max(ans, f[x][y]);
                }
            }
            return ans;
        }
    }

C++

  • class Solution {
    public:
        int maximumLength(vector<int>& nums, int k) {
            int f[k][k];
            memset(f, 0, sizeof(f));
            int ans = 0;
            for (int x : nums) {
                x %= k;
                for (int j = 0; j < k; ++j) {
                    int y = (j - x + k) % k;
                    f[x][y] = f[y][x] + 1;
                    ans = max(ans, f[x][y]);
                }
            }
            return ans;
        }
    };

Comments