Leetcode_16
来源:互联网 发布:java全栈开发工程师 编辑:程序博客网 时间:2024/03/29 09:08
void quicksort(int* nums,int low,int high);int partition(int* nums,int low,int high);int threeSumClosest(int* nums, int numsSize, int target) { if(numsSize == 0) return 0; if(numsSize == 1) return nums[0]; if(numsSize == 2) return nums[0] + nums[1]; if(numsSize == 3) return nums[0] + nums[1] + nums[2]; quicksort(nums,0,numsSize-1); int ans = nums[0] + nums[1] + nums[2]; int i; for(i = 0;i < numsSize-2;++i){ int j = i + 1; int k = numsSize - 1; while(j < k){ int sum = nums[i] + nums[j] + nums[k]; if(abs(target - ans) > abs(target - sum)){ ans = sum; if(ans == target) return ans; } if(sum > target){ k--; } else{ j++; } } } return ans;}void quicksort(int* nums,int low,int high){ int p; if(low < high){ p = partition(nums,low,high); quicksort(nums,low,p-1); quicksort(nums,p+1,high); }}int partition(int* nums,int low,int high){ int i=low; int j=high; int p=nums[low]; j++; while(1){ while(p > nums[++i]){ if(i > high){ break; } } while(p < nums[--j]){ if(j < low){ break; } } if(i>=j){ break; } nums[i] = nums[i] + nums[j]; nums[j] = nums[i] - nums[j]; nums[i] = nums[i] - nums[j]; } if(low!=j){ nums[low] = nums[low] + nums[j]; nums[j] = nums[low] - nums[j]; nums[low] = nums[low] - nums[j]; } return j;}
0 0
- Leetcode_16
- LeetCode_16---3Sum Closest
- 你是我红尘里最美的那株莲
- Ojbective-C基础教程
- JS如何输出空格
- XManager5基于gdm连接centos图形界面
- TLCL学习笔记02——使用命令、重定向、从shell眼中看世界
- Leetcode_16
- mapreduce框架详解
- win10修改和隐藏系统输入法指示器
- Swift语法02.常量&变量
- PhpStorm创建网页后,局域网访问ip链接失败的解决办法
- sql server 2008 R2 将带有数字和非数字的字段进行排序
- windows+nginx+memcached+tomcat做负载均衡
- 先presentModalViewController后pushViewController没有效果的解决方法
- 关于不同位数的值与操作