一、剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
class Solution {
public int[] exchange(int[] nums) {
if(nums.length<=1){
return nums;
}
int size=nums.length;
int[] res=new int[size];
int l=0;
int r=size-1;
for(int i=0 ;i<size;i++){
if(nums[i]%2==0){
res[r--]=nums[i];
}else{
res[l++]=nums[i];
}
}
return res;
}
}
二、剑指 Offer 57. 和为s的两个数字
class Solution {
public int[] twoSum(int[] nums, int target) {
if(nums.length==1){
return new int[0];
}
int size=nums.length;
int l=0;
int r=size-1;
while(l<r){
if(nums[l]+nums[r]==target){
return new int[]{nums[l],nums[r]};
}else if(nums[l]+nums[r]<target){
l++;
}else{
r--;
}
}
return new int[0];
}
}
三、剑指 Offer 58 - I. 翻转单词顺序
地址
class Solution {
public String reverseWords(String s) {
s=s.trim();
if(s.length()<=1){
return s;
}
StringBuffer sb=new StringBuffer();
int i=s.length()-1;
while(i>=0){
if(s.charAt(i)==' '){
i--;
continue;
}
int j=i+1;
int k=i-1;
while(k>=0&&s.charAt(k)!=' '){
k--;
}
sb.append(s.substring(k+1,j)+" ");
i=k-1;
}
return sb.toString().trim();
}
}