注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
亚麻OA2两道题所有case全过, 还是挂了, 反正留着也没用了, 不如发出来大家看看.
题目是大家之前总结的11道题的, 题目描述我没存下来, 但是看代码的话函数名能认出来.
代码是C++写的, 顺便还带有一个可以把各种C++常用数据结构像python一样直接print的调试类.哈哈哈.
各位看官求加米安慰安慰
#include <iostream>
#include <vector>
#include <string>
#include <queue>
#include <random>
#include <unordered_map>
#include <stack>
#include <deque>
#include <algorithm>
#include <unordered_set>
#include <limits>
#include <map>
#include <functional>
using namespace std;
class Debug
{
public:
template<template<class, class...> class ContainerType, class ValueType, class... Args>
void print(const ContainerType<ValueType, Args...>& c)
{
for (const auto& v : c)
{
cout << v << endl;
}
}
template<template<class, class, class> class ContainerType, class ValueType, class Cmp>
void print(ContainerType<ValueType, vector<ValueType>, Cmp> q)
{
while (!q.empty())
{
auto value = q.top();
cout << value << endl;
q.pop();
}
}
template<class T>
void print(stack<T, deque<T>>& c)
{
while (!c.empty())
{
auto value = c.top();
cout << value << endl;
c.pop();
}
}
template<class T>
void print(queue<T, deque<T>>& c)
{
while (!c.empty())
{
auto value = c.front();
cout << value << endl;
c.pop();
}
}
private:
template<class T, class U>
friend ostream& operator<< (ostream& out, const pair<T, U>& p);
};
template<class T, class U>
inline ostream& operator<< (ostream& out, const pair<T, U>& p)
{
out << "(" << p.first << "," << p.second << ")";
return out;
}
/*1111111111111111111111111111111111111111111111111111111111*/
vector<int> two_sum_closet(vector<int>& nums, int target)
{
sort(nums.begin(), nums.end());
int n = nums.size(), res_l, res_r, l = 0, r = n - 1, diff = numeric_limits<int>::max();
while (l < r)
{
if (abs(nums[l] + nums[r] - target) < diff)
{
res_l = l, res_r = r;
diff = abs(nums[l] + nums[r] - target);
}
if (nums[l] + nums[r] > target) --r;
else ++l;
}
return{ nums[res_l], nums[res_r] };
}
/*222222222222222222222222222222222222222222222222222*/
class Record {
public:
int id, score;
Recordd[1];
++dist;
}
x -= d[0];
y -= d[1];
--dist;
if (dists[x][y] > dist) {
dists[x][y] = dist;
if (x != destination[0] || y != destination[1]) q.push({ x, y });
}
}
}
int res = dists[destination[0]][destination[1]];
return (res == INT_MAX) ? -1 : res;
}
/*11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11*/
vector<vector<int>> k_closest_neibers(vector<vector<int>>& points, int K)
{
auto cmp = [](const vector<int>& p1, const vector<int>& p2) {
return p1[0] * p1[0] + p1[1] * p1[1] < p2[0] * p2[0] + p2[1] * p2[1];
};
using type = priority_queue<vector<int>, vector<vector<int>>, decltype(cmp)>;
type pq(cmp);
for (auto point : points)
{
pq.emplace(point);
if (pq.size() > K) pq.pop();
}
vector<vector<int>> res;
while (!pq.empty())
{
res.emplace_back(pq.top()); pq.pop();
}
return res;
}
int main()
{
vector<int> v{ 1, 3, 4, 7, 10 };
vector<vector<int>> vv{ { 8, 4, 7 }, { 6, 5, 9 } };
auto r = two_sum_closet(v, 15);
auto r1 = count_number_of_substrings_with_exactly_k_distinct_characters("abafg", 2);
/*auto r2 = maximum_minimum_path(vv);
auto r3 = find_a_substring_of_size_K_such_that_there_is_exactly_one_character_that_is_repeated_once("awaglk", 4);
Debug d;*/
//d.print(r3);
cout << r1 << endl;
system("pause");
return 0;
}
补充内容 (2019-2-12 09:01):
楼主是2.7的due |