网易雷火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.xdnf.cn/news/1541967.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

(C++17) optional 的 3 种用法

文章目录 *️⃣前言*️⃣3 种主流用法1️⃣函数返回值2️⃣函数参数3️⃣类成员 ⭐END&#x1f31f;跋&#x1f31f;交流方式 *️⃣前言 在 C17 中标准化了 std::optional。该类型可以容纳一种类型&#xff0c;且判断是否有无。 若使用的标准在低于 C17 则可以使用 Abseil 的…

浅谈递推法

递推法 递推法是一种数学方法&#xff0c;用于通过利用已知的初始条件和递推关系来计算要求中的每一项。以数列来举例&#xff0c;在递推法中&#xff0c;它的思想很简单&#xff1a;我们首先知道数列的第一项&#xff08;初始条件&#xff09;&#xff0c;然后通过一个规律&a…

GEE 数据集:人类造成的热带潮湿森林退化程度的估计

目录 简介 摘要 代码 结论 数据和代码 引用 网址推荐 0代码在线构建地图应用 机器学习 人类造成的热带潮湿森林退化程度超出了先前的估计 简介 选择性采伐、火灾和边缘效应造成的热带森林退化是碳和生物多样性损失的主要驱动因素1,2,3,其年增长率可与森林砍伐相媲美…

Golang | Leetcode Golang题解之第424题替换后的最长重复字符

题目&#xff1a; 题解&#xff1a; func characterReplacement(s string, k int) int {cnt : [26]int{}maxCnt, left : 0, 0for right, ch : range s {cnt[ch-A]maxCnt max(maxCnt, cnt[ch-A])if right-left1-maxCnt > k {cnt[s[left]-A]--left}}return len(s) - left }f…

【算法题】63. 不同路径 II-力扣(LeetCode)-”如果起点有障碍物,那么便到不了终点“

【算法题】63. 不同路径 II-力扣(LeetCode)-”如果起点有障碍物&#xff0c;那么便到不了终点“ 1.题目 下方是力扣官方题目的地址 63. 不同路径 II 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下…

【全网最全】2024年华为杯研赛A题成品论文获取入口(后续会更新)

您的点赞收藏是我继续更新的最大动力&#xff01; 一定要点击如下的卡片&#xff0c;那是获取资料的入口&#xff01; 点击链接加入【2024华为杯研赛资料汇总】&#xff1a;https://qm.qq.com/q/hMgWngXvcQhttps://qm.qq.com/q/hMgWngXvcQ你是否在寻找数学建模比赛的突破点&am…

BUUCTF逆向wp [WUSTCTF2020]Cr0ssfun

第一步 查壳&#xff0c;本题是64位&#xff0c;无壳。 第二步 查看主函数&#xff0c;点开看主函数&#xff0c;没什么东西。 左边表里面看到好几个i开头的函数&#xff08;红色方框里面&#xff09;&#xff0c;点开看后每个函数的最后末尾&#xff08;图中红色椭圆圈那里&a…

(笔记自用)位运算总结+LeetCode例题:颠倒二进制位+位1的个数

一.位运算总结: 在解题之前理解一下为什么需要位运算&#xff1f;它的本质是什么&#xff1f; 力扣上不少位运算相关的题&#xff0c;并且很多题也会用到位运算的技巧。这又是为什么&#xff1f; 位运算的由来 在计算机里面&#xff0c;任何数据最终都是用数字来表示的&…

在Java中基于GeoTools的Shapefile读取乱码的问题解决办法

目录 前言 1、Shapefile属性字段编码的情况&#xff1a; 一、Shp文件常见的字符集编码 1、System编码 2、ISO-8859-1编码 3、UTF-8编码 二、GeoTools解析实战 1、未进行字符处理 2、乱码问题的解决 3、转码支持 4、属性字段编码结果 三、总结 前言 文件编码&#x…

分布式锁优化之 使用lua脚本改造分布式锁保证判断和删除的原子性(优化之LUA脚本保证删除的原子性)

文章目录 1、lua脚本入门1.1、变量&#xff1a;弱类型1.2、流程控制1.3、在lua中执行redis指令1.4、实战&#xff1a;先判断是否自己的锁&#xff0c;如果是才能删除 2、AlbumInfoApiController --》testLock()3、AlbumInfoServiceImpl --》testLock() 1、lua脚本入门 Lua 教程…

Linux基础命令以及常识

镜像站点服务器&#xff08;相当于下载的网址&#xff09;也可叫软件源 vim /etc/apt/sources.list 索引文件(网络服务器在本地的缓存) 服务器软件源在本地列出来一个清单&#xff0c;以便于主机进行查询操作 cd /var/lib/apt/lists/ 下载软件包默认存放路径 cd /var/cache/a…

认识NDK

什么是NDK&#xff08;Native Development Kit&#xff09; The Android NDK is a toolset that lets you implement parts of your app in native code, using languages such as C and C. &emdp; Android NDK 是一个工具集&#xff0c;可让您使用 C 和 C 等语言以原生代…

重型工程车辆数据集

重型工程车辆数据集&#xff0c;内含Bull_dozer&#xff08;推土机&#xff09;, Dumb_truck&#xff08;卡车&#xff09;, Excavator&#xff08;挖掘机&#xff09;, Grader&#xff08;平地机&#xff09;, Loader&#xff08;转载机&#xff09;, Mobile_crane&#xff08…

『功能项目』QFrameWork拾取道具UGUI【69】

本章项目成果展示 我们打开上一篇68QFrameWork扔到地上UGUI的项目&#xff0c; 本章要做的事情是实现当物品在地上时&#xff0c;点击物品将对应物品转移到道具栏中 制作一个提示UI界面 添加Button组件设置为点击即将父物体隐藏 拖拽到文件夹中在场景中删除 创建脚本&#xf…

架构师:使用 Zookeeper 实现分布式锁的技术指南

1、简述 在分布式系统中,多个节点可能需要访问共享资源或执行需要互斥的操作,为了避免竞争导致数据不一致或资源争用,我们需要一种机制来协调各个节点对资源的访问。分布式锁是用于解决这种竞争问题的关键技术,它确保在同一时间只有一个节点能够访问或修改共享资源。 2、Z…

Ansible部署与应用基础

由于互联网的快速发展导致产品更新换代速度逐步增长&#xff0c;运维人员每天都要进行大量的维护操作&#xff0c;按照传统方式进行维护使得工作效率低下。这时部署自动化运维就 可以尽可能安全、高效的完成这些工作。 一、Ansible概述 1.什么是Ansible Ansible 是基于 Pytho…

Matplotlib绘图基础

1、散点图 绘制散点图是数据可视化中非常常见的操作&#xff0c;它用于显示两组数据之间的关系。Matplotlib 提供了 plt.scatter() 函数&#xff0c;可以轻松绘制散点图。以下是一个基础的散点图示例代码&#xff0c;并包含了一些优化可视化呈现的技巧。 import matplotlib.p…

Python 如何调用讯飞星火大模型API

1 讯飞星火简介 讯飞星火是科大讯飞推出的一款先进的人工智能大模型&#xff0c;它具备强大的语言理解和知识问答能力&#xff0c;能够在多种场景中提供智能化服务。2024年6月27日&#xff0c;科大讯飞发布了讯飞星火大模型V4.0版本&#xff0c;全面对标GPT-4 Turbo。现有的模…

某采招网爬虫数据采集逆向

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 目标网站 aHR0cHM6Ly9zZWFyY2guYmlkY2VudGVyLmNvbS5jbi9zZWFyY2g/a2V5d29yZHM9JWU0…

医院伤员消费点餐限制———未来之窗行业应用跨平台架构

一、点餐上限 医院点餐上限具有以下几方面的意义&#xff1a; 1. 控制成本 - 有助于医院合理规划餐饮预算&#xff0c;避免食物的过度供应造成浪费&#xff0c;从而降低餐饮成本。 2. 保障饮食均衡 - 防止患者或陪护人员过度点餐某一类食物&#xff0c;有利于引导合…