题解 | #左旋转字符串#
数组中的最长连续子序列
http://www.nowcoder.com/practice/eac1c953170243338f941959146ac4bf
使用动态规划思想:
首先对数组进行排序;
定义数组;
dp[0]=1;
相等的情况与前面的dp[]保持一致;
import java.util.*; public class Solution { /** * max increasing subsequence * @param arr int整型一维数组 the array * @return int整型 */ public int MLS (int[] arr) { // write code here Arrays.sort(arr); int res=1; //使用动态规划 int[] dp=new int[arr.length]; dp[0]=1; for(int i=1;i<arr.length;i++){ //考虑相等的情况 if(arr[i]==arr[i-1]) dp[i]=dp[i-1]; else if(arr[i]==arr[i-1]+1) dp[i]=dp[i-1]+1; else dp[i]=1; res=Math.max(res,dp[i]); } return res; } }