C语言双指针法解决-有序数组的平方
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
/** * Note: The returned array must be malloced, assume caller calls free(). */ int cmp(const void * a, const void * b){ return (*(int*)a) - (*(int*)b); } int* sortedSquares(int* nums, int numsSize, int* returnSize){ // 使用双指针法 int left = 0; int right = numsSize - 1; int* newList = (int*)malloc(numsSize*sizeof(int)); int k = numsSize - 1; while (k>=0){ if (nums[left]*nums[left] > nums[right] * nums[right]){ newList[k] = nums[left]*nums[left]; left++; } else{ newList[k] = nums[right]*nums[right]; right--; } k--; } * returnSize = numsSize; return newList; }