智力题
数量关系
逻辑判断
java
力扣
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
class Solution {
public int removeDuplicates(int[] nums) {
if (nums.length == 0) return 0;
int i = 0;
for (int j = 1; j < nums.length; j++) {
if (nums[j] != nums[i]) {
i++;
nums[i] = nums[j];
}
}
return i + 1;
}
}
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
class Solution {
public int maxSubArray(int[] nums) {
int a = nums[0];
int sum = 0;
for(int num: nums) {
if(sum > 0) {
sum += num;
} else {
sum = num;
}
a = Math.max(a, sum);
}
return a;
}
}
给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0
class Solution {
public int lengthOfLastWord(String s) {
if (s.length() == 0) {
return 0;
}
int a = 0;
boolean flag = true;
for (int i = s.length() - 1; i >= 0; i--) {
if (s.charAt(i) == ' ' && flag) {
continue;
}
if (s.charAt(i) != ' ') {
a++;
flag = false;
}
if (s.charAt(i) == ' ' && !flag) {
break;
}
}
return a;
}
}