当前位置: 首页 > news >正文

网易雷火xx

1、
题意游戏玩法相关的数值数据一股来说会披放在一个叫配置表的地方。
配置表样表如下:1 today
2 is
3 good
4 day
约定:第一列为主键列(id列,唯一,从上到下保持升序)第二列为值列,所谓的差异比对就是比对的新旧两张表相同id行的值游戏的每一个版本更新,策划都会对配置表中的数据进行修改以通应游戏玩法的变化,为了避免乘划因人为失误导致配置表错误修改,需要对配置表每次变更内容都做审核,基于这个场景,请设计一个新旧配置表差异比对的程序,将左表(旧表)和右表(新表)进行差异比对,返回两张表的新增修改/删除行的信息。这个程序包含了4个入参,分别对应左表(旧日表)和右表(新表)的主键列和值列,第1个参数是左表的主健列表,第2个参数是左表的值列表,第3个参数是右表的主健列表,第4个参数是右表的值列表。出参是个双层的列表,内部包含了3个列表,第1个列表是新增行id列表,第2个列表是修改行id列表,第3个列表是删除行id列表,这3个列表均按id开序排例列
示例1:
输入:
[1,2],[“nowcoder”,“best”],[1,2],[“nowcoder”,“great”]
输出:
[[],[2],[]]
说明:
在这个样例中,无数据新增,所以返回值第一个列表为空,id=2的数据行被修改了,所以返回值第二个列表是[2],无数据删除,所以返回值第三个列表为空。

思路与代码
使用两个哈希表分别存储左表和右表的主键和值的对应关系,方便快速查找和比较。遍历新表的主键列,找出新增和修改的行。遍历旧表的主键列,找出删除的行。

vector<vector<int>> configTable(vector<int> leftIds, vector<string> leftVals, vector<int> rightIds, vector<string> rightVals) {map<int, string> hisIdVal;map<int, string> newIdVal;vector<int> add;vector<int> modify;vector<int> del;int lens = leftIds.size();for (int i = 0; i < lens; i++) hisIdVal[leftIds[i]] = leftVals[i];lens = rightIds.size();for (int j = 0; j < lens; j++) newIdVal[rightIds[j]] = rightVals[j];//检查是否有删除的记录for (auto idval : hisIdVal){if (newIdVal.find(idval.first) == newIdVal.end()){del.push_back(idval.first);}}for (auto idval:newIdVal){if (hisIdVal.find(idval.first)!= hisIdVal.end()){//存在,是否修改if (hisIdVal[idval.first] != idval.second){modify.push_back(idval.first);}}else {//历史不存在,属于新增add.push_back(idval.first);}}vector<vector<int>> res;res.push_back(add);res.push_back(modify);res.push_back(del);return res;
}

2、
现在有这么一组数据:
{“name”. “ace”, “sort1”: 8, “sort2”: 4},
{“name”. “bre”, “sort1”: 2, “sort2”: 3},
{“name”: “cat”, “sort1”: 5, “sort2”: 2},
{“name”: “dog”, “sort1”: 1, “sort2”: 1},
根据数据中的“sort1”和“sort2”字段对数组进行排序,
要求设计一个算法,能够根据输入的orderBy 值为要排序的字段和 orderType 值为(排序类型,升序或者降序)

输入描述
根据 sort1 升序排序
orderBy=sort1
orderType=asc
输出描述
dog
bre
cat
ace
示例:
输入:
sort1 asc
输出:
dog
bre
cat
ace


class Item
{
public:Item(string name,int sort1,int sort2):_name(name), _sort1(sort1), _sort2(_sort2){}~Item() = default;string _name;int _sort1;int _sort2;private:};void sortBy() {string orderBy = "", orderType = "";cin >> orderBy;cin >> orderType;list<Item> items;items.push_back(Item("ace", 8, 4));items.push_back(Item("bre", 2, 3));items.push_back(Item("cat", 5, 2));items.push_back(Item("dog", 1, 1));auto compSort1 = [](const Item &item1, const Item &item2) {return item1._sort1 < item2._sort1;};auto compSort1Desc = [](const Item &item1, const Item &item2) {return item1._sort1 > item2._sort1;};auto compSort2 = [](const Item &item1, const Item &item2) {return item1._sort2 < item2._sort2;};auto compSort2Desc = [](const Item &item1, const Item &item2) {return item1._sort2 > item2._sort2;};if (orderBy == "sort1") {if (orderType=="asc"){items.sort(compSort1);}else {items.sort(compSort1Desc);}}else if (orderBy == "sort2"){if (orderType == "asc") {items.sort(compSort2);}else {items.sort(compSort2Desc);}}for (auto item :items) cout << item._name << endl;
}

http://www.mrgr.cn/news/31868.html

相关文章:

  • 马斯克万卡集群AI数据中心引发的科技涟漪:智算数据中心挑战与机遇的全景洞察
  • 新手教学系列——善用 VSCode 工作区,让开发更高效
  • 如何在 WordPress 中轻松强制所有用户退出登录
  • ODC 如何精确呈现SQL耗时 | OceanBase 开发者工具解析
  • 【含开题报告+文档+PPT+源码】基于SpringBoot+Vue的到家护理服务平台的设计与实现
  • 【数据库】深入解析慢 SQL 的识别与优化策略
  • Ubuntu实现SSH免密登录教程
  • 输电线路绝缘子红外检测数据集
  • 基于协同过滤推荐算法的食品推荐系统
  • 【艾思科蓝】Spring全家桶使用深度教程:从入门到精通
  • Linux 文件 IO 管理(第二讲)(重定向和缓冲区)
  • Innodb内存结构
  • mysql性能优化- 数据库配置优化
  • 【C++】模拟实现list
  • MySQL 中如何处理大型事务
  • 超实用线程调度方法!
  • 【算法】2022年第十三届蓝桥杯大赛软件类省赛Java大学C组真题
  • SQL优化之深度分页优化
  • linux安装nginx+前端部署vue项目(实际测试react项目也可以)
  • 模板初阶
  • 自闭症能上寄宿学校吗?了解解答与选择
  • PLC中几个电机控制电路
  • IDA Pro基本使用
  • 【Linux】简易日志系统
  • 剑指offer JZ54 二叉搜索树的第k个节点
  • python+selenium实现自动联网认证,并实现断网重连