[LeetCode]Two Sum 【Vector全局指针的使用】
2024-09-04 18:04:21
无序数组返回两个元素和为给定值的下标。
tricks:无序、返回下标增序、返回的是原始数组的下标。
vector<int>*pa;
bool cmp(int x,int y){
return (*pa)[x]<(*pa)[y];
}
class Solution {
public:
vector<int> twoSum(vector<int> &a, int t) {
int n=a.size();
pa=&a;
int* id=new int[n],i=0,j=n-1;
for(i=0;i<n;++i){
id[i]=i;
}
sort(id,id+n,cmp);
for(i=0,j=n-1;i<j;){
if(a[id[i]]+a[id[j]]==t)break;
else if(a[id[i]]+a[id[j]]<t)
++i;
else --j;
}
vector<int>v;
if(id[i]<id[j]){
v.push_back(id[i]+1);v.push_back(1+id[j]);
}
else {v.push_back(1+id[j]);
v.push_back(id[i]+1);
}
delete[]id;
return v;
}
};
最新文章
- C# HttpWebRequest获取COOKIES
- iOS 链式编程探索(Masonry)
- lua定义一个简单的类
- 关于Dijkstra最短路径算法
- jsAddress
- iptables文件
- Itext导出PDF,word,图片案例
- JS 去除字符串中的空格
- SQL中的事物【转】
- sql server 2005+ 翻页
- 几个Uboot命令
- (转载)HTML标签<;br>;<;br/>;的区别在哪里?
- zend framework 1 连接oracle数据库的写法
- linux 服务器更主板后无法识别网卡处理过程
- hibernate的通配符比拼接sql到底好在哪?
- 多线程计算----pthread
- python-装饰器初解
- A1035. Password
- 外部javascript
- 黄聪:is_file和file_exists效率比较