/**
* 58.最后一个单词的长度
*
* @param s
* @return
*/
public static int lengthOfLastWord(String s) {
int index = s.length() - 1;
int number = 0;
// 去空
while (index >= 0 && s.charAt(index) == ' '){
index -- ;
}
// 查询单词
while (index >= 0 && s.charAt(index) != ' ') {
index--;
number++;
}
return number;
}
/**
* 53.最大子序和 ->动态规划
*
* @param nums
* @return
*/
public static int maxSubArray2(int[] nums) {
int pre = 0, maxAns = nums[0];
for (int x : nums) {
pre = Math.max(pre + x, x);
maxAns = Math.max(maxAns, pre);
}
return maxAns;
}
/**
* 53.最大子序和 ->超出时间限制
*
* @param nums
* @return
*/
public static int maxSubArray(int[] nums) {
if (null == nums && nums.length <= 0) {
return 0;
} else if (1 == nums.length) {
return nums[0];
} else {
// 至少包含两个元素
int sum = nums[0];
for (int i = 0; i < nums.length; i++) {
for (int j = i; j < nums.length; j++) {
int temp = 0;
if (j == i) {
temp += nums[j];
} else {
for (int m = i; m <= j; m++) {
temp += nums[m];
}
}
if (temp > sum) {
sum = temp;
}
}
}
return sum;
}
}