leetcode本地c++11开发组件

  • J5_515400
    了解作者
  • 4.5KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-06-07 01:05
    上传日期
方便本地开发测试,专注于实现提交函数,初版完善有限见量
dev_leetcode_c++11.zip
  • dev_leetcode_c++11
  • id1.cpp
    1.7KB
  • id3.cpp
    2.7KB
  • Makefile
    172B
  • leetcode.h
    2.8KB
内容介绍
/* * auther: jlusuoya * mail: jlusuoya@foxmailc.om * date: 2017-06-29 */ #include "leetcode.h" //use class Q1 : public Solution<RetType, ParamList> class Q3 : public Solution<vector<int>, vector<int>, int> { public: Q3(int id, bool debug = true) { SetConf(id, debug); } //一次随机测试 void RandomTest(uniform_int_distribution<int>& u, default_random_engine& e) override { Test(RandomVector(u, e, 2), u(e)); } //输出输入信息 void DumpInput(vector<int> nums, int target) override { cout << "sum: " << target << " | " << VecToStr(nums, ' ') << endl; } //输出字符串化以比较 r0是标准函数返回结果, r1是自定义函数结果 bool CheckRst(vector<int>& r0, vector<int>& r1, vector<int> nums, int target) const override { cout << r0[0] << "," << r0[1] << endl << r1[0] << "," << r1[1] << endl; return nums[r1[0]] + nums[r1[1]] == nums[r0[0]] + nums[r0[1]]; //1和2结果对比 //return (nums[r1[0]] + nums[r1[1]] == target) && (nums[r0[0]] + nums[r0[1]] == target) //全量校验以避免参考答案有误 } //算法1,普通算法,a+b=target,遍历一次数组,每个数,即可能是a,也可能是b,将a起来。如果找到了当前数的a,则成功 //9ms 54.37, 再提交2次,6ms和12ms vector<int> FUN_NAME_0(vector<int> nums, int target) override { unordered_map<int, int> subs; const int max = nums.size(); for(int i = 0; i < max; i++) { auto it = subs.find(target-nums[i]); if(it != subs.end()) return vector<int> {it->second, i}; subs[nums[i]] = i; } return vector<int> {-1, -1}; } //算法2,改进最佳答案,用map同时实现排序和反查,降低反查代价,损耗一些排序性能(相对快速排序) //18ms, 41.35%, 并没有成功,原因是数据量小的情况下,得不偿失 vector<int> FUN_NAME_1(vector<int> nums, int target) override { multimap<int, int> org_pos; for(size_t i = 0; i < nums.size(); i++) org_pos.insert(pair<int,int>(nums[i], i)); auto it_beg = org_pos.begin(); auto it_end = --org_pos.end(); while(it_beg != it_end) { int val = it_beg->first + it_end->first; if(val == target) { if(it_beg->second < it_end->second) return vector<int> {it_beg->second, it_end->second}; else return vector<int> {it_end->second, it_beg->second}; } if(val > target) it_end--; else if(val < target) it_beg++; } return vector<int> {-1, -1}; } }; Interface* GetObj(int argc, char* argv[], char* env[]) { Q3* s = new Q3(1, false); //指定使用1号算法 //返回之前可以进行一些内部测试 //s.Test(vector<int> {3,3}, 6); //指定的固定测试数据 //s.Test(vector<int> {2,7,11,15}, 9); return s; }
评论
    相关推荐
    • leetcode c++ 分类高清版 有答案
      leetcode c++ 分类高清版 有答案 leetcode c++ 分类高清版 有答案 leetcode c++ 分类高清版 有答案 leetcode c++ 分类高清版 有答案leetcode c++ 分类高清版 有答案
    • leetcode2sumc-LeetCode:C++11中的LeetCode解决方案
      C++ 11 中的 LeetCode 解决方案。 不。 标题 解决方案 困难 1 简单的 2 中等的 4 难的 5 中等的 20 简单的 21 简单的 35 简单的 43 中等的 53 简单的 63 中等的 64 中等的 92 简单的 121 简单的 129 中等的 144 简单...
    • leetcode答案-leetcode:leetcode-c++answers
      leetcode 答案leetcode leetcode-c++answers leetcode 的答案....更新中
    • leetcode-leetcode:leetcode的最佳C++解决方案
      C++ solutions for the leetcode 这是我自己写的leetcode的题解,目前已经完成了70%左右,后续部分会很快更新 这里放上来的代码都能保证是最优解(复杂度最优) 当然有些题目因为测试数据等原因可能会和统计中最快的...
    • leetcode:leetcodeC++代码
      leetcode 使用C++解决leetcode问题, //oj.leetcode.com/ 简单的介绍 编译标准 ISO C++11
    • leetcode代码200题c++
      leetcode代码200题,语言c++。用了一个月做了下leetode。都是AC代码。
    • LeetCode C++全解
      1. Introduction 2. Array i. Remove Element ii. Remove Duplicates from Sorted Array iii. Plus One iv. Pascal's Triangle v. Merge Sorted Array vi. Sum vii. Find Minimum in ...viii....ix....x....xi....xii....xiii....xiv....
    • leetcodepushfront-leetcode:C++中的leetcode
      C++中的leetcode 重要:15, 74, 105, 200, 236, 39 & 40 & 46, 43, 55, 81, 90, 96, 131 重做:31、33 binary_search 变种:旋转,重复 cp: // string string strNew = str + 'c' string strNew = str + "car" ...
    • GaussDB_100_1.0.1-DATABASE-REDHAT-64bit.tar.gz
      guassdb100在redhat上安装包,单机部署的包,安装步骤请看我的文中介绍,经过大量实验搭建总结出来的文档