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

C#华为OD笔试题*3

C#华为OD笔试题*3

背景

参加了一下华为OD笔试,共三道题特此记录一下前两道都对了,第三道还在研究之后更新。

代码

题目1

   轮转寿司店办活动,假设5盘寿司价格分别为3 14 15 6 5,买其中一盘寿司则赠送下一盘价格小于他的寿司,最低价格不赠送,比如买14价格的寿司 赠送6元的 买5元的赠送3元的,请输出实际商品价值。比如3 14 15 6 5,最终输出为3 20 18 9 8

        public static void Main(string[] args){string line;while ((line = System.Console.ReadLine()) != null){ // 注意 while 处理多个 casestring[] tokens = line.Split(' ');if (tokens.Length != 0){if (tokens.Length == 1)Console.WriteLine(tokens[0]);else{int[] inputArr = tokens.AsEnumerable().Select(o => Convert.ToInt32(o)).ToArray<int>();int[] resArr = GetTotalPrice(inputArr);Console.WriteLine(string.Join(" ", resArr));}}}Console.ReadKey();}static int[] GetTotalPrice(int[] arr){int[] newArr = new int[arr.Length];//3 14 15 6 5//3 20 18 9 8for (int i = 0; i < arr.Length; i++){int tmp = 0;for (int j = i + 1; j < arr.Length; j++){if (arr[j] < arr[i]){tmp = arr[j];break;}}if (tmp == 0 && i > 0){for (int j = 0; j < i - 1; j++){if (arr[j] < arr[i]){tmp = arr[j];break;}}}newArr[i] = tmp + arr[i];}return newArr;}

题目2

        输入
        5 4
        1
        1
        2
        3
        5
        1 2 3
        1 4
        3 4 5
        2 3 4
        5测试用例权重 4组测试用例
        相同权重按顺序 按序号排序
        1 2 3 权重4
        1 4 权重 4
        3 4 5 权重 10
        2 3 4 权重 6
        输出 3 4 1 2

        static int numM = 0;static int numN = 0;static int[] arrM;static int[] arrN;static int rowCount = 0;public static void Main(){//m n m times spe n times dataList<int[]> list = new List<int[]>();string line;while (!string.IsNullOrEmpty(line = System.Console.ReadLine())){ // 注意 while 处理多个 casestring[] tokens = line.Split(' ');if (list.Count == 0 && tokens.Length == 2){numM = Convert.ToInt32(tokens[0].Trim());numN = Convert.ToInt32(tokens[1].Trim());rowCount = numM + numN + 1;arrM = new int[numM];arrN = new int[numN];list.Add(new int[] { numM, numN });}else if (list.Count <= rowCount){if (list.Count >= 1 && list.Count < numM + 1){list.Add(new int[] { Convert.ToInt32(tokens[0]) });arrM[list.Count - 1 - 1] = Convert.ToInt32(tokens[0]);}elseif (list.Count >= numM + 1 && list.Count <= rowCount - 1){list.Add(tokens.AsEnumerable().Select(o => Convert.ToInt32(o)).ToArray());int valueN = tokens.AsEnumerable().Select(o => arrM[Convert.ToInt32(o) - 1]).Sum();arrN[list.Count - numM - 1 - 1] = valueN;if (list.Count == rowCount){int[] newArr = arrN.AsEnumerable().OrderByDescending(o => o).ToArray();List<int> arrIndex = new List<int>();for (int i = 0; i < numN; i++){for (int j = 0; j < numN; j++){if (!arrIndex.Contains(j) && arrN[j] == newArr[i])arrIndex.Add(j);elsecontinue;}}foreach(var item in arrIndex)Console.WriteLine(item+1);list.Clear();rowCount = 0;arrM = null;arrN = null;numM = 0;numN = 0;}}}}Console.ReadKey();}

题目3

        /**
         * 返回通过指定路口之间的最短时间
         * @param lights int整型二维数组 n*m 个街口每个交通灯的周期,值范围[0,120],n和m的范围为[1,9]
         * @param timePerRoad int整型 相邻两个街口之间街道的通过时间,范围为[0,600]
         * @param rowStart int整型 起点的行号
         * @param colStart int整型 起点的列号
         * @param rowEnd int整型 终点的行号
         * @param colEnd int整型 终点的列号
         * @return int整型
         */

实现算法,这个应该是最小路径。菜,没答上来。

研究明白再回来更。

        public int calcTime(int[][] lights, int timePerRoad, int rowStart, int colStart, int rowEnd, int colEnd){// write code hereint m = lights[0].Length;int n = lights.Count();// 0 0 2 2int num1 = rowEnd - rowStart;int num2 = colEnd - colStart;//youzhuan 0 zuozhuan 5int rowTurn = 0;if (num1 >= 0 && num2 >= 0)rowTurn = 5 * 1 + 0 * 2;if (num1 <= 0 && num2 <= 0)rowTurn = 2 * 5 + 0;if (num1 <= 0 && num2 >= 0)rowTurn = 2 * 5 + 0;int res = (num1 + num2) * timePerRoad + rowTurn;return res;}

百战不灭。。。总能拿到offer的

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Spring Core——资源加载与访问(Resource)
  • 优思学院|如何透过客户忠诚度分析决定六西格玛改善项目?
  • 01、爬虫学习入门
  • C语言数组练习--扫雷
  • 【目标检测】Yolo5基本使用
  • 【SQL 新手教程 1/20】SQL语言MySQL数据库 简介
  • 为什么 OPC UA 很重要
  • Redis与缓存
  • go-kratos 学习笔记(8) redis的使用
  • OpenCV 图像基础
  • 养宠空气净化器哪家好?养宠空气净化器质量好的牌子推荐
  • Ubuntu一键导入openVPN配置文件
  • PHP多功能投票系统源码小程序
  • 用来跳转的<a> 标签,原来还有这么多强大又实用的功能
  • 通信原理-思科实验五:家庭终端以太网接入Internet实验
  • 【译】JS基础算法脚本:字符串结尾
  • 10个最佳ES6特性 ES7与ES8的特性
  • DataBase in Android
  • ECMAScript入门(七)--Module语法
  • Git的一些常用操作
  • gulp 教程
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • Lsb图片隐写
  • NSTimer学习笔记
  • Phpstorm怎样批量删除空行?
  • Sass 快速入门教程
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • Vue全家桶实现一个Web App
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 分类模型——Logistics Regression
  • 官方解决所有 npm 全局安装权限问题
  • 后端_ThinkPHP5
  • 技术胖1-4季视频复习— (看视频笔记)
  • 日剧·日综资源集合(建议收藏)
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 一天一个设计模式之JS实现——适配器模式
  • - 转 Ext2.0 form使用实例
  • #define 用法
  • #define与typedef区别
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #QT(串口助手-界面)
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (20)docke容器
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)php投票系统 毕业设计 121500
  • (七)Appdesigner-初步入门及常用组件的使用方法说明
  • (原创)可支持最大高度的NestedScrollView
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .form文件_一篇文章学会文件上传
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET 项目中发送电子邮件异步处理和错误机制的解决方案