longest increasing continuous subsequence in a 2D matrix
来源:互联网 发布:js 获取浏览器信息 编辑:程序博客网 时间:2024/05/21 09:57
dp + dfs
//These two are only for traversing around x,y public int[] xMove = { 1, 0, 0, -1 }; public int[] yMove = { 0, 1, -1, 0 }; public int longestIncreasingContinuousSubsequenceII(int[][] A) { // Write your code here if (A == null || A.length == 0) return 0; int[][] dp = new int[A.length][A[0].length]; int max = 0; for (int i = 0; i < A.length; i++) { for (int j = 0; j < A[0].length; j++) { if (max < findMaxPath(A, i, j, dp)) { max = findMaxPath(A, i, j, dp); } } } return max + 1; } private int findMaxPath(int[][] A, int x, int y, int[][] dp) { if (dp[x][y] != 0) { return dp[x][y]; } //go through around x,y for (int i = 0; i < 4; i++) { //check if in bound if (check(A, x + xMove[i], y + yMove[i])) { // if (A[x + xMove[i]][y + yMove[i]] < A[x][y]) { if (dp[x][y] < findMaxPath(A, x + xMove[i], y + yMove[i], dp) + 1) { dp[x][y] = findMaxPath(A, x + xMove[i], y + yMove[i], dp) + 1; } } } } return dp[x][y]; } private boolean check(int[][] A, int x, int y) { if (x >= 0 && x < A.length && y >= 0 && y < A[0].length) { return true; } return false; }
0 0
- longest increasing continuous subsequence in a 2D matrix
- Longest Continuous Increasing Subsequence
- [Lintcode]Longest Increasing Continuous Subsequence
- #397 Longest Increasing Continuous Subsequence
- 674. Longest Continuous Increasing Subsequence
- 674. Longest Continuous Increasing Subsequence
- 674. Longest Continuous Increasing Subsequence
- LeetCode674. Longest Continuous Increasing Subsequence
- 674-Longest Continuous Increasing Subsequence
- 674. Longest Continuous Increasing Subsequence
- 674. Longest Continuous Increasing Subsequence
- 674. Longest Continuous Increasing Subsequence
- leetCode-Longest Continuous Increasing Subsequence
- 674. Longest Continuous Increasing Subsequence
- 397. Longest Increasing Continuous Subsequence
- leetcode Longest Increasing Path in a Matrix
- 329. Longest Increasing Path in a Matrix
- [LeetCode] Longest Increasing Path in a Matrix
- perfect squares find the least number of perfect square numbers (1, 4, 9, 16, ...) which sum to n
- Codeforces Round #320 (Div. 2)C. A Problem about Polyline
- 我的成长(三)---沟通真的很重要
- java网络编程【精简篇】
- 条款30 透彻了解inlining的里里外外
- longest increasing continuous subsequence in a 2D matrix
- Xcode7--免费真机调试
- Codeforces Round #320 (Div. 2)B. Finding Team Member
- 行列式的几何意义
- HTML&CSS Learning Notes 5
- Leetcode #225 Implement Stack using Queues
- cf#320 Div.2 Problem B Finding Team Member
- cf#320 Div.2 Problem A Raising Bacteria
- 完全卸载oracle11g