[LeetCode]Two Sum 【Vector全局指针的使用】
无序数组返回两个元素和为给定值的下标。
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;
}
};
[LeetCode]Two Sum 【Vector全局指针的使用】的更多相关文章
- [LeetCode] Path Sum II 二叉树路径之和之二
Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given su ...
- leetcode: Path Sum II 迭代法
Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given su ...
- LeetCode:Path Sum I II
LeetCode:Path Sum Given a binary tree and a sum, determine if the tree has a root-to-leaf path such ...
- LeetCode OJ--Path Sum II **
https://oj.leetcode.com/problems/path-sum-ii/ 树的深搜,从根到叶子,并记录符合条件的路径. 注意参数的传递,是否需要使用引用. #include < ...
- 【leetcode】Sum Root to Leaf Numbers(hard)
Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number ...
- [LeetCode] Combination Sum (bfs)
Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C wher ...
- LeetCode Path Sum II (DFS)
题意: 给一棵二叉树,每个叶子到根的路径之和为sum的,将所有可能的路径装进vector返回. 思路: 节点的值可能为负的.这样子就必须到了叶节点才能判断,而不能中途进行剪枝. /** * Defin ...
- [leetcode] Path sum路径之和
要求给定树,与路径和,判断是否存在从跟到叶子之和为给定值的路径.比如下图中,给定路径之和为22,存在路径<5,4,11,2>,因此返回true;否则返回false. 5 / \ 4 8 / ...
- [LeetCode] Range Sum Query - Mutable 题解
题目 题目 思路 一看就是单点更新和区间求和,故用线段树做. 一开始没搞清楚,题目给定的i是从0开始还是从1开始,还以为是从1开始,导致后面把下标都改掉了,还有用区间更新的代码去实现单点更新,虽然两者 ...
随机推荐
- PHP 安装完成后 增加 bcmath 模块
1. cd /usr/local/src/php-5.6.38/ext/bcmath 目录2. /usr/local/php/bin/phpize 生成configure需要的配置文件3. ./ ...
- js的闭包中关于执行环境和作用链的理解
首先讲一讲执行环境: 执行环境按照字面上来理解就是指目前代码执行所在的环境. 当JavaScript代码执行的时候,会进入不同的执行上下文,这些执行上下文会构成了一个执行上下文栈(Execution ...
- JS 获取字符串中的url并返回其下标索引
//获取字符串中的url极其下标索引 function getHttpUrlArray(s) { var s1 = s.match(/http.*/); if(s1 == null) { return ...
- JavaScript中变量、作用域和内存问题(JavaScript高级程序设计第4章)
一.变量 (1)ECMAScript变量肯能包含两种不同的数据类型的值:基本类型值和引用类型值.基本类型值指的是简单的数据段,引用类型值指那些可能由多个值构成的对象. (2)基本数据类型是按值访问,可 ...
- BestCoder Round #90 A+B题解!
BestCoder Round #90 A Kblack loves flag 题意有点迷不造思路很简单但不造怎么求随机数,纠结了一会后直接粘上题目所给的代码稍加修改A了. const int _K ...
- 七牛云一站式 SSL 证书服务上线,即刻使用最多可省 7 万
2017 年 ,随着谷歌.苹果和腾讯对原 HTTP 的相继限制,全站 HTTPS 已经成为了当下趋势,所以安装 SSL 证书成为网站建设中必不可少的一步. 在 2016 年底,七牛云已经与 Trust ...
- X230 安装 EI Capitan 10.11.5 总结
/* 写这个文章的目的主要是为了帮助我自己理清思路,如果能顺便帮助到您.even better */ 在动手之前大致浏览了 远景论坛(国内第一黑苹果社区)置顶帖的全部内容 [新人请看]远景 ...
- 【HDOJ6312】Game(博弈)
题意: 有一个1到n的序列,两个人轮流取数,取走一个数同时会取走它所有的因子,不能取者为输,两个人都按最优策略取数,问先手是否必胜 思路: #include<cstdio> #includ ...
- hdu 2438 Turn the corner [ 三分 ]
传送门 Turn the corner Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- Notification通知创建
Notification通知创建 由于通知是一个远程视图,所以创建通知在状态栏显示需要用到三个主要的对象: 一.PendingIntent对象,用来承载Intent对象的,Intent对象主要是定义通 ...