977. 有序数组的平方

coding

如果要再同一个类里使用方法,方法的关键字一定要是public static 为什么?

变量一定要先声明后用,就算for each也一样

数组的声明是这样的 int[] nums = {1,2};

for each是这样的for (int k : nums) {..} 即对于在数组中的每个k

for循环 for(初始动作;条件;每轮结束后的动作){...},注意第三个是语句块的都执行完了再执行第三个语句

 

977. 有序数组的平方

class Solution {
    public int[] sortedSquares(int[] nums) {
        //输入数组,返回一个排序后的数据
        //从两侧往中间,用双指针,比较左右两侧判断较大值,新建一个结果数组和指针用于存放结果
        // 平方没必要用pow方法,直接乘就可以了,注意要的结果是平方后非递减,写条件的时候要靠近结果,不要迂回条件
        // 因此双指针需要的左右两个指针,根据题目要求给出结果,进行存放
        int i = 0;
        int j = nums.length-1;
        int[] res = new int[nums.length];

        for(int k = nums.length-1;i<=j;k--){
        if(nums[i] * nums[i] > nums[j]*nums[j]){
            res[k] =nums[i] * nums[i];
            i++;
        }else {
            res[k] = nums[j]*nums[j];
            j--;
            }
        }
        return res;
    }
}

 

 

 

二分查找 https://leetcode-cn.com/problems/binary-search/

 

posted @ 2021-09-07 14:43  别打雷  阅读(35)  评论(0编辑  收藏  举报