botón de estancia --- 24/03/2020

preguntas de la entrevista 17.16. El masajista

class Solution {
    public int massage(int[] nums) {
        if(nums.length==0) return 0;
        if(nums.length==1) return nums[0];
        int[] dp = new int[nums.length];
        dp[0] = nums[0];
        dp[1] = Math.max(nums[0],nums[1]);
        for(int i=2;i<nums.length;i++){
            dp[i] = Math.max(dp[i-1],dp[i-2]+nums[i]);
        }
        return dp[nums.length-1];
    }
}
class Solution {
    public int massage(int[] nums) {
        int a = 0,b = 0;
        for(int i = 0;i < nums.length;i++){
            int c = Math.max(b,a+nums[i]);
            a = b;
            b = c;
        }
        return b;
    }
}

57. Las dos figuras ya las cuestiones de la cara de s

class Solution {
    public int[] twoSum(int[] nums, int target) {
        for(int i=0;i<nums.length;i++){
            for(int j=nums.length-1;j>=0;j--){
                if(nums[i]+nums[j]==target){
                    return new int[]{nums[i],nums[j]};
                }
                if(nums[i]+nums[j]<target){
                    break;
                }
            }
        }
        return new int[]{};
    }
}
class Solution {
    public int[] twoSum(int[] nums, int target) {
        int i = 0, j = nums.length - 1;
        while(i < j) {
            int s = nums[i] + nums[j];
            if(s < target) i++;
            else if(s > target) j--;
            else return new int[] { nums[i], nums[j] };
        }
        return new int[0];
    }
}
class Solution {
    public int[] twoSum(int[] nums, int target) {
        Set<Integer> set = new HashSet<>();
        for(int num : nums){
            if(!set.contains(target - num))
                set.add(num);
            else
                return new int[]{num,target - num};
        }
        return new int[]{};
    }
}

21. El orden de las preguntas cara del conjunto ajustado de manera que delante de la par-impar

class Solution {
    public int[] exchange(int[] nums) {
        int i = 0,j=nums.length-1;
        while(i<j){
            if(nums[i]%2==0&&nums[j]%2==1){
                int temp = nums[i];
                nums[i++] = nums[j];
                nums[j--] = temp;
            }else if(nums[i]%2==1&&nums[j]%2==0){
                i++;
                j--;
            }else if(nums[i]%2==1&&nums[j]%2==1){
                i++;
            }else if(nums[i]%2==0&&nums[j]%2==0){
                j--;
            }
        }
        return nums;
    }
}
// nums[i] & 1  <==>  num[i] % 2 
class Solution {
    public int[] exchange(int[] nums) {
        int i = 0, j = nums.length - 1, tmp;
        while(i < j) {
            while(i < j && (nums[i] & 1) == 1) i++;
            while(i < j && (nums[j] & 1) == 0) j--;
            tmp = nums[i];
            nums[i] = nums[j];
            nums[j] = tmp;
        }
        return nums;
    }
}
class Solution {
    public int[] exchange(int[] nums) {
        int slow = 0,fast = 0;
        while(fast<nums.length){
            if((nums[fast]&1)==1) swap(nums,slow++,fast);
            fast++;
        }
        return nums;
    }

    public void swap(int[] nums,int a,int b){
        int temp = nums[a];
        nums[a] = nums[b];
        nums[b] =temp;
        return;
    }
}

Cuanto más se sabe, más usted no sabe.
Forma correcta sin necesidad de cirugía, los pacientes aún pueden buscar, no hay ninguna manera de la cirugía, poniendo fin a la cirugía.
Si usted tiene otras preguntas, mensaje de bienvenida, podemos discutir, aprender juntos y progresar juntos

Publicados 205 artículos originales · ganado elogios 139 · Vistas a 20000 +

Supongo que te gusta

Origin blog.csdn.net/qq_40722827/article/details/105081826
Recomendado
Clasificación