华为OD机试双机位C卷:采购订单 (Py/Java/C/C++/Js/Go)

华为OD机试双机位C卷:采购订单 (Py/Java/C/C++/Js/Go)

采购订单

华为OD机试双机位C卷 - 华为OD上机考试双机位C卷 100分题型

华为OD机试双机位c卷真题目录点击查看: 华为OD机试双机位C卷真题题库目录|机考题库 + 算法考点详解

题目描述

在一个采购系统中,采购申请(PR)需要经过审批后才能生成采购订单(PO)。每个PR包含商品的单价(假设相同商品的单价一定是一样的)及数量信息。系统要求对商品进行分类处理:单价高于100元的商品需要单独处理,单价低于或等于100元的相同商品可以合并到同一采购订单PO中。针对单价低于100的小额订单,如果量大可以打折购买。

具体规则如下:

如果PR状态为"审批通过",则将其商品加入到PO中。如果PR的状态为"审批拒绝"或"待审批",则忽略改PR。

对于单价高于100元的商品,每个商品单独生成一条PO记录。对于单价低于100元的商品,将相同商品的数量合并到一条PO记录中。

如果商品单价<100且商品数量>=100,则单价打9折。

输入描述

第一行包含整数N,表示PR的数量。

接下来N行,每行包含四个用空格分割的整数,按顺序表示:商品ID,数量,单价,PR状态(0表示审批通过,1表示审批拒绝,2表示待审批)

输出描述

Read more

SGBM 算法流程(一)

SGBM 算法流程(一)

SGBM 算法流程详解 (Semi-Global Block Matching) 目录 1. 算法概述 2. 完整算法流程 3. 步骤1: 预处理 (Pre-processing) 4. 步骤2: 代价计算 (Cost Computation) 5. 步骤3: 代价聚合 (Cost Aggregation) 6. 步骤4: 视差计算 (Disparity Computation) 7. 步骤5: 后处理 (Post-processing) 8. 完整代码示例 9. 工程优化技巧 1. 算法概述 1.1 SGBM 的本质 SGBM (Semi-Global Block Matching) 是 Heiko Hirschmüller

By Ne0inhk
位运算讲解

位运算讲解

🏝️专栏:https://blog.ZEEKLOG.net/2301_81831423/category_12845252.html 🌅主页:猫咪-9527-ZEEKLOG博客  “欲穷千里目,更上一层楼。会当凌绝顶,一览众山小。” 目录 目录 编辑 1. 除法(乘法)转位运算 实际场景应用: 2. 按位与(&)确定资源状态 实际场景应用:资源分配 3. 按位或(|)改变资源状态 实际场景应用:占用资源 4. 按位与提取整型数字最后面的 1 实际场景应用: 5. 去掉整型数字最后面的 1 实际场景应用: 6. 异或(^)的小技巧 实际场景应用:交换两数值(无临时变量) 实际场景应用:

By Ne0inhk
【C++】STL之list模拟实现:关于链表容器的双向迭代器你知道多少?

【C++】STL之list模拟实现:关于链表容器的双向迭代器你知道多少?

前言: 前面的博客中我已经介绍了STL核心容器之一的list相关接口的使用,今天我们就从底层出发,来模拟实现一下list的那些核心接口函数。同时,也来感受一下list的双向迭代器到底与string和vector的随机迭代器有哪些区别? list容器功能接口介绍:https://blog.ZEEKLOG.net/Miun123/article/details/151685386?spm=1001.2014.3001.5502 废话不多说,我们直接进入今天的正题👇️👇️👇️ list容器深度剖析及模拟实现 我们想要模拟实现list容器,那就要理解list容器的底层结构。前面的博客已经提到,其本质就是一个双向链表,所以,成员变量就应该包含一个记录头节点的指针,以及记录有效节点个数的变量。同时,为了list容器可以满足不同类型的数据,我们将所有的类实现为类模板。 1、定义节点结构 struct创建的类默认所有的成员但是公开的,而节点结构就需要公开被list访问。 template<class T> struct list_node { // 成员变量 T _da

By Ne0inhk
Java分治算法题目练习(快速/归并排序)

Java分治算法题目练习(快速/归并排序)

分治算法 * 颜色分类 * 排序数组(快排) * 数组中第K个最大元素 * 最小的K个数 * 排序数组(归并) * 交易逆序对的总数 * 翻转对 * 计算右侧小于当前元素的个数 使用快速排序和归并排序进行解决问题,因为这两个都是采用归并的思想 颜色分类 题目解析:将其数组中0放在左边,1放在中间,2放在右边 在双指针算法中有一个移动零的题目,就是将所有0元素移动到右边,但是非0元素相对位置不改变 那题使用双指针将其数组分为三部分,因此这题也可以将其数组分块 left表示为0区域最右侧,i遍历数组,right表示2区域最左侧 使用这三个指针将这个数组分为了4部分 classSolution{publicvoidsortColors(int[] nums){//可以将其数组分为三部分//[0,left]:全是0//[left+1,i-1]全都是1//[i,right-1]待扫描//[right,n-1]全是2int left =-1;int i =0;

By Ne0inhk