【编程】leetcode

之前了解到leetcode是个不错的刷题站点,今天稍微尝试了一下第一题,比较简单,要排序又要通过hash表来保存相应的index。

只是在弄输出结果的时候,花了点时间。之前还一直以为判断输出结果是通过在函数中output出来的,结果是将结果作为函数的返回值返回给系统来判断。

class Solution {public:    class mapFinder{public:    int left;    mapFinder(int val):left(val){}    bool operator()(const multimap<int, int>::value_type &pair)    {        return (pair.first == left);    }};        vector<int> twoSum(vector<int> &numbers, int target) {        vector<int>::iterator it;        multimap <int, int> iiMap;        multimap <int, int>::iterator iiMit1, iiMit2, iiMit3;

        for (it = numbers.begin(); it != numbers.end(); it++)        {            iiMap.insert(pair<int, int>(*it, it - numbers.begin() + 1));        }

        for (iiMit1 = iiMap.begin(), iiMit2 = iiMap.end(); iiMit1 != iiMap.end(); iiMit1++)        {            iiMit3 = iiMit1;            iiMit3++;            iiMit2 = find_if(iiMit3, iiMap.end(), mapFinder(target - iiMit1->first));

            if (iiMit2 != iiMap.end())    /* found */            {                break;            }        }

        if (iiMit2 != iiMap.end())        {            if (iiMit1->second > iiMit2->second)            {                return vector<int>({iiMit2->second, iiMit1->second});            }            else            {                return vector<int>({iiMit1->second, iiMit2->second});            }        }    }};
时间: 2024-11-05 20:48:24

【编程】leetcode的相关文章

LeetCode算法编程(两题)

今天看到酷壳推荐的国外编程LeetCode算法编程网站,上面目前有154道算法题,感觉很有意思,平常工作也比较忙,现在很少有时间来锻炼算法相关的东西,有空的时候静下心来,温习下基础,活跃下自已的思路,也是有必要的.先做了几道,后面会陆续补充其它的题目. 1.题目-PlusOne Given a non-negative number represented as an array of digits, plus one to the number. The digits are stored s

LeetCode算法练习PlusOne

今天看到酷壳推荐的国外编程LeetCode算法编程网站,上面目前有154道算法题,感觉很有意思,平常工作也比较忙,现在很少有时间来锻炼算法相关的东西,有空的时候静下心来,温习下基础,活跃下自已的思路,也是有必要的.下午先做了个简单的题,后面会陆续补充其它的题目. 1.题目 Given a non-negative number represented as an array of digits, plus one to the number. The digits are stored such

leetcode&amp;编程之美——博文目录

leetcode刷题整理: 1——Two Sum(哈希表hashtable,map) 2——Add Two Numbers(链表) 3——Longest Substring Without Repeating Characters(set,哈希表,两个指针) 9——Palindrome Number (数学问题) 11——Container With Most Water(两个指针) 12——Integer to Roman(string,数学问题) 13——Roman to Integer(s

【LeetCode在线编程记录-1】字符串按单词反转

写在前面 LeetCode(地址:https://oj.leetcode.com/)是一个在线编程网站,题目经典,测试用例完备,共计157道算法类的题目.之后我会记录我的一些练习题目,有些答案是我自己原创的(说是原创,也很可能是之前在别的地方看到的而已),有些是从讨论区看到的,我都会明确标注出处. Reverse Words in a String Given an input string, reverse the string word by word. For example, Given

LeetCode编程总结

# 1.在有序表中查找两数组指定的和,双指针法# 2.滑动窗口 : 连续子数组之和# 3.二分查找 : 顺序数组中查找特定的值 # 4.递归程序的真正的构建是从底向上的,这就是为什么递归终止条件要写在最前面# 参见 反转链表的递归程序 LeetCode206 # 5. 链表归并排序的递归过程,要好好体会一下 # 6.树型的暴力搜索(全路径搜索 .DFS )需要进行回溯 参见 LeetCode 93 # 7.利用 return 能使树型递归提早结束,类似于DFS 参见 LeetCode 37 #

LeetCode算法编程之连载三

1.题目 - Linked List Cycle II Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Follow up: Can you solve it without using extra space? 题目解释: 单链表找环的题目,代码中不开辟新的空间,这道题应该是算法面试和一些书籍上常见的题. 这道题,在读书的时候就做过了,不过很久没有搞类

网易2016 实习研发工程师 [编程题]寻找第K大 and leetcode 215. Kth Largest Element in an Array

传送门 有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数. 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在. 测试样例: [1,3,5,2,2],5,3 返回:2 note: 注意手写快排的时候: while(i < j) { while(j > i && a[j] > a[left]) j--; while(i < j && a[i] <= a[left]) i++; if(i

LeetCode编程训练 - 拓扑排序(Topological Sort)

拓扑排序基础 拓扑排序用于解决有向无环图(DAG,Directed Acyclic Graph)按依赖关系排线性序列问题,直白地说解决这样的问题:有一组数据,其中一些数据依赖其他,问能否按依赖关系排序(被依赖的排在前面),或给出排序结果. 最常用解决拓扑排序问题的方法是Kahn算法,步骤可以概括为: 1. 根据依赖关系,构建邻接矩阵或邻接表.入度数组 2. 取入度为0的数据(即不依赖其他数据的数据),根据邻接矩阵/邻接表依次减小依赖其的数据的入度 3. 判断减小后是否有新的入度为0的数据,继续进

leetcode:83 Remove Duplicates from Sorted List-每日编程第十六题

Remove Duplicates from Sorted List Total Accepted: 89961 Total Submissions: 253975 Difficulty: Easy Given a sorted linked list, delete all duplicates such that each element appear only once. For example,Given 1->1->2, return 1->2.Given 1->1-&g