C#程序员必备:编程面试基础题13道

目录

【简介】

【题目】

【解答】

【备注】

【作者的话】

【简介】

基础十三题,旨在帮助应届生求职,告别单纯刷乐扣题目的苦恼,通过举一反三的方法帮助你破解面试难题。

【题目】

        1.求长:求数组长度。
        2.去重:求去重后的列表。(存入新列表List<int>)
        3.索引:求删除第二个元素后的列表。(存入新列表List<int>)
        4.索引:求在第二个元素后插入数字666的列表。(存入新列表List<int>)
        5.索引:求索引为2的值
        6.索引:求值为2的索引(所有都要求出来)
        7.频率:统计数字出现频率,字典键装载数字,值装载出现次数。(存入新字典)
        8.字典:在第七步求得的字典中,找出键为2的值;
        9.字典:在第七步求得的字典中,找出值为2的键;
        10.排序:2排第一,4排第二,其余按照从小到大排。(LINQ)
        11.过滤:筛选出值大于4的列表。(存入新列表List<int>)
        12.列表对比:已知新数组int[] nums2 = { 6,100},求 nums是否为 nums2的子集,返回布尔类型。
        13.用foreach循环分别给nums每个不为0的值加一。(存入新列表List<int>)

【解答】

using System;
/*题目:1.求长:求数组长度。2.去重:求去重后的列表。(存入新列表List<int>)3.索引:求删除第二个元素后的列表。(存入新列表List<int>)4.索引:求在第二个元素后插入数字666的列表。(存入新列表List<int>)5.索引:求索引为2的值6.索引:求值为2的索引(所有都要求出来)7.频率:统计数字出现频率,字典键装载数字,值装载出现次数。(存入新字典)8.字典:在第五步求得的字典中,找出键为2的值;9.字典:在第五步求得的字典中,找出值为2的键;10.排序:2排第一,4排第二,其余按照从小到大排。(LINQ)11.过滤:筛选出值大于4的列表。(存入新列表List<int>)12.列表对比:已知新数组int[] nums2 = { 6,100},求 nums是否为 nums2的子集,返回布尔类型。13.用foreach循环分别给nums每个不为0的值加一。(存入新列表List<int>)*/
class Program
{static void Main(){int[] nums = { 0, 1, 2, 2, 3, 0, 4, 2 ,5};//题目数组// 1. 求长:求数组长度。int length = nums.Length;// 2. 去重:求去重后的列表。(存入新列表List<int>)List<int> distinctList = nums.Distinct().ToList();List<int> hashset = nums.ToHashSet().ToList();//法二// 3. 索引:求删除第二个元素后的列表。(存入新列表List<int>)var list = nums.ToList();list.RemoveAt(1);// 4. 索引:求在第二个元素后插入数字666的列表。(存入新列表List<int>)List<int> afterInsert666 = nums.ToList();afterInsert666.Insert(2 , 666); // 即在索引2位置插入数字666// 5. 索引:求索引为2的值int valueAtIndex2 = nums[2];// 6. 索引:求值为2的索引(所有都要求出来)List<int> indicesOfValue2 = nums.Select((num, index) => num == 2 ? index : -1).Where(index => index != -1).ToList();//Select转化为元组,再用Where过滤// 7. 频率:统计数字出现频率,字典键装载数字,值装载出现次数。(存入新字典)Dictionary<int, int> dic = new Dictionary<int, int>();foreach (var num in nums){dic[num] = dic.ContainsKey(num) ? dic[num] + 1 : 1;}// 8. 字典:在第七步求得的字典中,找出键为2的值;int valueForKey2 = dic.ContainsKey(2) ? dic[2] : 0;// 9. 字典:在第七步求得的字典中,找出值为2的键;List<int> keysForValue2 = dic.Where(kvp => kvp.Value == 2).Select(kvp => kvp.Key).ToList();// 10. 排序:2排第一,4排第二,其余按照从小到大排。(LINQ)var sortedList = nums.ToList().OrderByDescending(x => x == 2).ThenByDescending(x => x == 4).ThenBy(x=>x);// 11. 过滤:筛选出值小于3的列表。(存入新列表List<int>)List<int> filteredList = nums.Where(num => num < 3).ToList();//12.列表对比:已知新数组int[] nums2 = { 6,100},求 nums是否为 nums2的子集,返回布尔类型。int[] nums2 = { 6, 100 };HashSet<int> numsSet = new HashSet<int>(nums);HashSet<int> nums2Set = new HashSet<int>(nums2);bool isSubset = numsSet.IsSubsetOf(nums2Set);//13.用foreach循环分别给nums每个不为0的值加一。(存入新列表List<int>)List<int> newList = new List<int>();newList = nums.Select(num => num != 0 ? num + 1 : num).ToList();//13题法二//foreach (var num in nums)//{//    if (num != 0)//    {//        newList.Add(num + 1);//    }//    else//    {//        newList.Add(num);//    }//}}
}

【备注】

12题的解法很多,一解是LINQ

nums2.All(x => nums.Contains(x));//判断nums2的元素是否都在nums中

12题还能暴力遍历

using System;class Program
{static bool IsSubset(int[] arr1, int[] arr2){foreach (var num in arr2){bool found = false;foreach (var n in arr1){if (num == n){found = true;break;}}if (!found){return false;}}return true;}static void Main(){int[] nums = { 0, 1, 2, 2, 3, 0, 4, 2 ,5};//题目数组int[] nums2 = { 6, 100 };bool isSubset = IsSubset(nums, nums2);//判断nums2是否为nums的子集}
}

【作者的话】

欢迎在评论区提供更棒的解题思路,如有勘误,恳请斧正,感激万分!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/744789.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机体系分类结构分类

从宏观上按处理机的数量进行分类&#xff0c;分为单处理系统&#xff0c;并行处理与多处理系统和分布式处理系统。 单处理系统(uni-processing system)。利用一个处理单元与外部设备结合起来实现存储&#xff0c;计算&#xff0c;通信&#xff0c;输入与输出。 并行处理与多…

【刷题】双指针进阶

请看入门篇 &#xff1a;双指针入门 送给我们一句话&#xff1a; 如今我努力奔跑&#xff0c;不过是为了追上那个曾经被寄予厚望的自己 —— 约翰。利文斯顿 双指针进阶 Leetcode 611 有效三角形的个数Leetcode LCR179.查找总价格为目标值的两个商品Leetcode 15.三数之和Thanks…

手把手教你使用Python第三方模块

1.第三方模块 一般是别人解决特定问题的功能进行了封装&#xff0c;可以通过安装直接使用 注意 第三方模块需要先安装&#xff0c;才能使用 常见的安装方式&#xff1a;通过pip工具或者通过pycharm编辑器进行安装 2.pip指令安装 pip -V # 查看pip的版本 pip 23.2.1 fr…

基于PHP的数字化档案管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的数字化档案管理系统 一 介绍 此数字化档案管理系统基于原生PHP&#xff0c;MVC架构开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。 技术栈 php(mvc)mysqlbootstrapphpstudyvscode 二 功能 …

网络原理(网络协议初识)

目录 1.网络通信基础 1.1IP地址 1.2端口号 1.3认识协议 1.4五元组 1.5 协议分层 2.TCP/IP五层&#xff08;或四层&#xff09;模型 2.1网络设备所在分层 2.2网络分层对应 3.封装和分用 1.网络通信基础 网络互连的目的是进行网络通信&#xff0c;也即是网络数据传输&#…

手写简易操作系统(九)--实现打印函数

前情提要 前面我们已经进入内核程序了&#xff0c;中间穿插了一点特权级的知识&#xff0c;现在我们开始准备一个打印函数 很不幸&#xff0c;还有汇编程序 一、C调用规约 因为涉及到C与汇编的联合编程&#xff0c;我们这里简述一下调用规约&#xff0c;调用规约就是约定参…

#android中的框架层

android中的框架层是什么&#xff1f; 在 Android 系统中&#xff0c;框架层&#xff08;Framework&#xff09;是指位于操作系统和应用程序之间的一层软件架构&#xff0c;提供了许多核心功能和服务&#xff0c;以方便应用程序开发者进行应用程序开发。Android 框架层包括了一…

jdk8与jdk17的区别。springboot2.x与springboot3.x的区别

1. jdk8与jdk17的区别 Java JDK 8 和 JDK 17 之间存在许多区别&#xff0c;包括功能、性能、语言特性和工具等方面。以下是它们之间的一些主要区别&#xff1a; 功能和语言特性&#xff1a; JDK 8引入了许多重要的语言特性&#xff0c;包括Lambda表达式、方法引用、Stream API、…

Node.js 学习笔记 fs、path、http模块;模块化;包;npm

Node.js学习 Node.js一、定义1.前端工程化2.Node.js 为何能执行 JS&#xff1f;3.安装nodejs、删除之前的nodejs4.使用 Node.js 二、fs模块 \- 读写文件三、path 模块案例 - 压缩前端html四、HTTP相关URL中的端口号常见的服务程序http 模块-创建 Web 服务案例&#xff1a;浏览时…

Python二级备考

考试大纲如下&#xff1a; 基本要求 考试内容 考试方式 比较希望能直接刷题&#xff0c;因为不懂的比较多可能会看视频。 基础操作刷题&#xff1a; 知乎大头计算机1-13题 import jieba txtinput() lsjieba.lcut(txt) print("{:.1f}".format(len(txt)/len(ls)…

XIAO ESP32S3部署Edge Impulse模型

在上一篇文章中我们介绍了如何使用edge impulse训练一个图片分类模型并导出arduino库文件。在这篇文章中我们将介绍如何在esp32s3中部署这个训练好的图片分类模型。 添加进Arduino库 有两种方法将下载的文件添加进Arduino库。 在Arduino IDE程序中&#xff0c;转到项目选项卡…

✅技术社区—集成xxl-job实现定时任务的管理和执行

xxl-job是一个分布式任务调度平台&#xff0c;其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线&#xff0c;开箱即用。(其中XXL是作者许雪里的简称) xxl-job是对老牌调度平台Quartz进行的封装。在开始介绍xxl-job之前我来先简单…

Jmeter —— jmeter中元件的执行顺序作用域

元件的执行顺序&#xff1a; 配置元件-->前置处理程序-->定时器-->取样器-->后置处理程序&#xff08;除非Sampler 得 到的返回结果为空&#xff09;-->断言&#xff08;除非Sampler 得到的返回结果为空&#xff09;-->监听器 &#xff08;除非Sampler 得到…

【Redis系列】深入了解 Redis:一种高性能的内存数据库

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【kotlin】在SpringBoot项目中使用kotlin协程coroutine实现方法的异步延迟调用,例如延迟查询短信发送详情结果。

前言&#xff1a; 当前做法实现了对某个方法异步延迟的操作&#xff0c;常见的场景如短信发送日志的延迟查询和记录。 一般来说&#xff0c;短信的发送和接收&#xff0c;在短信云服务商那里形成完整记录是需要一定的时间的&#xff0c;只有这段时间过去才可以有效查到短信的发…

微信小程序-day01

文章目录 前言微信小程序介绍 一、为什么要学习微信小程序?二、微信小程序的历史创建开发环境1.注册账号2.获取APPID 三、下载微信开发者工具1.创建微信小程序项目2.填写相关信息3.项目创建成功 四、小程序目录结构项目的主体组成结构 总结 前言 微信小程序介绍 微信小程序&…

新 树莓派4B 温湿度监测 基于debian12的树莓派OS

前言 本文旨在完成通过外接温湿度传感器至树莓派使得树莓派不断记录并存储温湿度数据 这个领域有很多文章&#xff0c;但是部分文章已经缺乏了时效性&#xff0c;在最新系统不适用&#xff0c;本文目前适用 硬件 硬件连接 温湿度传感器常选用DHT11和DHT22&#xff0c;淘宝…

每日OJ题_哈希表③_力扣217. 存在重复元素

目录 力扣217. 存在重复元素 解析代码 力扣217. 存在重复元素 217. 存在重复元素 难度 简单 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 &#xff0c;返回 true &#xff1b;如果数组中每个元素互不相同&#xff0c;返回 false 。 示例 1&#xff1a; 输…

私域流量运营的关键要素和基本步骤

解锁增长的四大关键&#xff1a; 关键要素一&#xff1a;精准营销 精准营销是私域流量运营的核心所在。通过精细化运营和个性化服务&#xff0c;企业可以将普通用户转化为忠实粉丝&#xff0c;提高用户的粘性和转化率。采用数据驱动的精准营销策略&#xff0c;深度挖掘用户需求…

26-5 SQL 注入攻击 - 利用dnslog带回回显信息范例

这篇文章是属于安全渗透的文章,选错专栏了,平台的机制不允许我再改,只能这样了,要学习python脚本的读者可以直接忽略这篇文章。 很抱歉我问了客服客服也没法解决。。 环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 26-3 SQ…