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

牛客网华为OD前端岗位,面试题库练习记录02

题目一 删除字符串中出现次数最少的字符(HJ23)

在这里插入图片描述

JavaScript Node ACM 模式

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;void (async function () {// Write your code herewhile ((line = await readline())) {let arr = line.split("");let obj = {};arr.forEach((item) => {if (obj[item] != undefined) {obj[item]++;} else {obj[item] = 1;}});let min = 21;for (let key in obj) {min = Math.min(min, obj[key]);}for (let key in obj) {if (min == obj[key]) {arr.forEach((item, index) => {if(item == key){arr.splice(index,1)}});}}console.log(arr.join(''))}
})();

知识笔记
① Math.min()
console.log(Math.min(-1, 4, 6, 12));//输出值:-1

题目二 字符串排序(HJ26)

在这里插入图片描述

JavaScript Node ACM 模式

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;void (async function () {// Write your code herewhile ((line = await readline())) {let result = line.split("");//先收集英文字母,对其进行排序let words = line.match(/[a-z]+/gi).join("").split("");words.sort(function (a, b) {a = a.toLowerCase();b = b.toLowerCase(); //规则1 不区分大小写return a < b ? -1 : 0; //升序排列(因为前面全都转化成小写,故不会改变同一字母大小写的相对顺序)});console.log('words',words)result.forEach((item, index) => {//将words中字母替换result中的字母,非英文字符不替换if (/[a-z]/i.test(item)) {//是英文字符,则替换result[index] = words[0];words.shift();}});console.log(result.join(""));}
})();

知识笔记:
解题代码借鉴的讨论区的大佬的。
大概梳理下这个想法。

① 题目理解:
将所有的字母,不区分大小写,按照从a-z排列,然后按照原文的格式输出。
② 思路解读:
1)提取所有的字母,然后按照a-z排列;
2)按照原字符串的位置序列,进行填充;

比较容易忽略的点:正则的函数。

题目三 HJ27 查找兄弟单词

在这里插入图片描述

JavaScript Node ACM 模式

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;void (async function () {// Write your code herelet arrline = [];while ((line = await readline())) {arrline = line.split(" ");}let _n = Number(arrline[0]); // 第一个是表示有多少个单词;let _allword = arrline.slice(1, _n); // 单词字典let _keyword = arrline[_n + 1]; // 关键单词let _index = arrline[arrline.length - 1]; // klet _keyarr = [];_keyarr = _keyword.split(""); // 关键词的数组;function permuteArray(arr) {// 获取全排列if (arr.length === 1) {return [arr];}const result = [];for (let i = 0; i < arr.length; i++) {const currentElement = arr[i];const remainingElements = arr.slice(0, i).concat(arr.slice(i + 1));const permutations = permuteArray(remainingElements);for (const permutation of permutations) {result.push(([currentElement].concat(permutation)).join(''));}}return result;}let _broarr = [];// 兄弟数组const permutations = permuteArray(_keyarr);_allword.forEach((item)=>{if(permutations.indexOf(item) != -1){// 兄弟数组重组_broarr.push(item)}})console.log(_broarr.length);if(_broarr[_index] != undefined && _broarr[_index] != null){console.log(_broarr[_index])   }
})();

知识笔记:
需要注意的点就是,数组的全排列。

    function permuteArray(arr) {// 获取全排列if (arr.length === 1) {return [arr];}const result = [];for (let i = 0; i < arr.length; i++) {const currentElement = arr[i];const remainingElements = arr.slice(0, i).concat(arr.slice(i + 1));const permutations = permuteArray(remainingElements);for (const permutation of permutations) {result.push(([currentElement].concat(permutation)).join(''));}}return result;}

大概思路就是,获取单词x的单字母全排列,然后在字典单词中匹配,然后挑出来。
然后输出。

题目四 HJ29 字符串加解密

在这里插入图片描述

JavaScript Node ACM 模式

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;void (async function () {// Write your code herelet twoarr = [];while ((line = await readline())) {twoarr.push(line);}let linearr = twoarr[0].split("");// 加密let _newarr = [];linearr.forEach((item) => {if (/[a-z]/.test(item)) {if (item == "z") {_newarr.push("A");} else {_newarr.push(String.fromCharCode(item.charCodeAt(0) + 1).toUpperCase());}} else if (/[A-Z]/.test(item)) {if (item == "Z") {_newarr.push("a");} else {_newarr.push(String.fromCharCode(item.charCodeAt(0) + 1).toLowerCase());}} else if (/[0-9]/.test(item)) {if (item == 9) {_newarr.push(0);} else {_newarr.push(Number(item) + 1);}}});let _linearr = twoarr[1].split("");// 解密let newarr = [];_linearr.forEach((item) => {if (/[a-z]/.test(item)) {if (item == "a") {newarr.push("Z");} else {newarr.push(String.fromCharCode(item.charCodeAt(0) - 1).toUpperCase());}} else if (/[A-Z]/.test(item)) {if (item == "A") {newarr.push("z");} else {newarr.push(String.fromCharCode(item.charCodeAt(0) - 1).toLowerCase());}} else if (/[0-9]/.test(item)) {if (item == 0) {newarr.push(9);} else {newarr.push(Number(item) - 1);}}});console.log(_newarr.join(""));console.log(newarr.join(""));
})();

知识笔记:
① 正则验证:test()方法,/[0-9]/验证是否是从1到9,/[a-z]/验证是否是从a-z;
② 大小写转化,toUpperCase()转大写,toLowerCase()转小写;
③ ASCII码转字符String.fromCharCode();
④ 字符转ASCII码string.charCodeAt();

题目五 HJ30 字符串合并处理

描述
按照指定规则对输入的字符串进行处理。

详细描述:

第一步:将输入的两个字符串str1和str2进行前后合并。如给定字符串 “dec” 和字符串 “fab” , 合并后生成的字符串为 “decfab”

第二步:对合并后的字符串进行排序,要求为:下标为奇数的字符和下标为偶数的字符分别从小到大排序。这里的下标的意思是字符在字符串中的位置。注意排序后在新串中仍需要保持原来的奇偶性。例如刚刚得到的字符串“decfab”,分别对下标为偶数的字符’d’、‘c’、‘a’和下标为奇数的字符’e’、‘f’、'b’进行排序(生成 ‘a’、‘c’、‘d’ 和 ‘b’ 、‘e’ 、‘f’),再依次分别放回原串中的偶数位和奇数位,新字符串变为“abcedf”

第三步:对排序后的字符串中的’0’‘9’、‘A’‘F’和’a’~'f’字符,需要进行转换操作。
转换规则如下:
对以上需要进行转换的字符所代表的十六进制用二进制表示并倒序,然后再转换成对应的十六进制大写字符(注:字符 a~f 的十六进制对应十进制的10~15,大写同理)。
如字符 ‘4’,其二进制为 0100 ,则翻转后为 0010 ,也就是 2 。转换后的字符为 ‘2’。
如字符 ‘7’,其二进制为 0111 ,则翻转后为 1110 ,对应的十进制是14,转换为十六进制的大写字母为 ‘E’。
如字符 ‘C’,代表的十进制是 12 ,其二进制为 1100 ,则翻转后为 0011,也就是3。转换后的字符是 ‘3’。
根据这个转换规则,由第二步生成的字符串 “abcedf” 转换后会生成字符串 “5D37BF”。

数据范围:输入的字符串长度满足 1 \le n \le 100 \1≤n≤100

输入描述
样例输入两个字符串,用空格隔开。

输出描述:
输出转化后的结果。
在这里插入图片描述

JavaScript Node ACM 模式

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;void (async function () {// Write your code herewhile ((line = await readline())) {let strarr = line.split(" ").join("").split("");let onearr = []; // 奇数数组;let twoarr = []; // 偶数数组;strarr.forEach((item, index) => {if (index % 2 == 0) {twoarr.push(item);} else {onearr.push(item);}});onearr = onearr.sort((a, b) => a.charCodeAt() - b.charCodeAt());twoarr = twoarr.sort((a, b) => a.charCodeAt() - b.charCodeAt());let _str = [];let len = onearr.length > twoarr.length ? onearr.length : twoarr.length;// 看谁length大,就用谁的长度来遍历for (let i = 0; i < len; i++) {// 遍历将两个数组合并到一起if (twoarr[i] != undefined) {_str.push(twoarr[i]);}if (onearr[i] != undefined) {_str.push(onearr[i]);}}let resultarr = [];_str.forEach((item) => {if (/[a-f]/i.test(item) || /[0-9]/.test(item)) {// 如果是a-f,0-9 则处理下let _item = parseInt(item, 16).toString(2);// 先转成2进制if (_item.length < 4) {for (let i = _item.length; i < 4; i++) {_item = "0" + _item.toString();// 补0}}_item = _item.split("").reverse().join("");// 反转_item = parseInt(_item, 2).toString(16);if (/[a-z]/.test(_item)) {_item = _item.toUpperCase();}resultarr.push(_item);}else{resultarr.push(item);}});console.log(resultarr.join(""));}
})();

知识笔记:
读题很重要。

题目六 HJ31 单词倒排

在这里插入图片描述

JavaScript Node ACM 模式

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;void async function () {// Write your code herewhile(line = await readline()){let linearr = line.split('');let _arr = []linearr.forEach((item)=>{if(/[a-z]/i.test(item)){_arr.push(item)}else{_arr.push(" ")}})let _str = _arr.join('')_arr = _str.split(" ")_arr.forEach((item)=>{item = item.split('').reverse().join('')})console.log(_arr.reverse().join(' '))}
}()

题目七 HJ32 密码截取

在这里插入图片描述

JavaScript Node ACM 模式

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;void (async function () {// Write your code herewhile ((line = await readline())) {let value = "";value = line;let len = 0;// 写一个判断是否是回文字串的方法const func = (val) => {const i = 0,j = val.length - 1;if (val[i] === val[j]) {if (j - i <= 2) {return true;}const sub = val.substring(i + 1, j);if (func(sub)) {return true;}return false;} else {return false;}};// 遍历各种可能出现的组合,寻找最长回文字串for (let i = 0; i < value.length; i++) {for (let j = i + 1; j <= value.length; j++) {const sub = value.substring(i, j);if (func(sub)) {if (sub.length > len) {len = sub.length;}}}}console.log(len);}
})();

思考:
找最长的回文字符串。
比较重要的代码

// 写一个判断是否是回文字串的方法const func = (val) => {const i = 0,j = val.length - 1;if (val[i] === val[j]) {if (j - i <= 2) {return true;}const sub = val.substring(i + 1, j);if (func(sub)) {return true;}return false;} else {return false;}};

题目八 HJ33 整数与IP地址间的转换

描述
原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成
一个长整数。
举例:一个ip地址为10.0.3.193
每段数字 相对应的二进制数
10 00001010
0 00000000
3 00000011
193 11000001

组合起来即为:00001010 00000000 00000011 11000001,转换为10进制数就是:167773121,即该IP地址转换后的数字就是它了。

数据范围:保证输入的是合法的 IP 序列
在这里插入图片描述

JavaScript Node ACM 模式

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;void async function () {// Write your code herewhile(line = await readline()){let _arr = []if(line.indexOf('.')!=-1){// 判断输入的是IP地址还是数字// ip地址_arr = line.split('.');let _2arr = []_arr.forEach((item)=>{let _2str = eval(item).toString(2);if(_2str.length<8){for(let i = _2str.length;i<8;i++){_2str = "0" + _2str;// 补足8位2进制}}_2arr.push(_2str)})console.log(parseInt(_2arr.join(''), 2))}else{// 数字_arr = eval(line).toString(2)if(_arr.length < 32){for(let i = _arr.length;i<32;i++){_arr = "0" + _arr// 补足32位2进制}}let _2numarr = []for(let i = 0;i<4;i++){let _item = _arr.substring(i*8,(i+1)*8 )// 截取_2numarr.push(parseInt(_item, 2))}console.log(_2numarr.join('.'))}}
}()

题目九 HJ34 图片整理

在这里插入图片描述

JavaScript Node ACM 模式

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;void async function () {// Write your code herewhile(line = await readline()){let arr = line.split('')let _arr = arr.sort()console.log(_arr.join(''))}
}()

就一个排序sort()

题目十 HJ38 求小球落地5次后所经历的路程和第5次反弹的高度

牛客网的题目难度参考下就行,不要较真。

在这里插入图片描述

JavaScript Node ACM 模式

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;void (async function () {// Write your code herewhile ((line = await readline())) {let _n = Number(line);let _all = 0;for (let i = 1; i <= 5; i++) {_all = _all + (Math.pow(2, -i) + Math.pow(2, -i + 1)) * _n;}_all  = _all - Math.pow(2, -5) * _nconsole.log(_all);console.log(Math.pow(2, -5) * _n);}
})();

思考:
这是数学的应用题,让你用代码的形式写出来,看来还是要多看数学呀。
大概落下过程是:
原始是n;
第一次落地,经历n;
第二次落地,经历1/2*n的弹起,加上1/4n的落下,即(1/2+1/4)n,2^(-1) * n + 2^(-2) * n ;
第三次落地,经历1/8
n的弹起,加上1/16n的落下,即(1/8+1/16)*n,2^(-3) * n + 2^(-4) * n;
……
第 i 次落地,经历2^(-i) * n + 2^(-i-1) * n;
总的长度就是n + 2^(-1) * n + 2^(-2) * n +2^(-3) * n + 2^(-4) * n + ……+2^(-i) * n + 2^(-i-1) * n;
搞个for循环遍历下;

相关文章:

牛客网华为OD前端岗位,面试题库练习记录02

题目一 删除字符串中出现次数最少的字符(HJ23) JavaScript Node ACM 模式 const rl require("readline").createInterface({ input: process.stdin }); var iter rl[Symbol.asyncIterator](); const readline async () > (await iter.next()).value;void (asyn…...

数据库动态增删数据,导致分页查询数据出现重复或遗漏的问题分析及解决方案

一、问题分析 1. 请求数据 一般情况下&#xff0c;为了减少服务器的压力或方便展示&#xff0c;前端通过分页方式来请求数据&#xff0c;调用 API 接口时会带上参数 page 与 pageSize。例如请求某个班级的学生数据&#xff0c;获取第一页的 10 个学生的数据 &#xff0c;假设按…...

神经网络基础-神经网络补充概念-44-minibatch梯度下降法

概念 小批量梯度下降法&#xff08;Mini-Batch Gradient Descent&#xff09;是梯度下降法的一种变体&#xff0c;它结合了批量梯度下降&#xff08;Batch Gradient Descent&#xff09;和随机梯度下降&#xff08;Stochastic Gradient Descent&#xff09;的优点。在小批量梯…...

比较海思麒麟810与高通骁龙855的优劣

海思麒麟810与高通骁龙855可以从以下几方面进行比较: 一、CPU比较 海思麒麟810还是高通骁龙855——哪个处理器更快?在这个比较中,我们观察了差异,并分析了这两个CPU中哪一个更好。我们比较了技术数据和基准测试结果。 海思麒麟810有8个内核和8个线程,时钟最高频率为2.2…...

计算机机房的管理

1 电源问题 不稳定的电源对电脑的使用寿命是一个极大的威胁&#xff0c;特别是对于机房来说危害 性更大。为此&#xff0c;学校要添置必要的稳压器&#xff0c;设置其正常供电的电压为 220 伏、电流 为 l6 安对电脑室供电。如有电压发生偏差&#xff0c;要及时检查供电情况&…...

软件架构生态化-多角色交付的探索实践

作为一个技术架构师&#xff0c;不仅仅要紧跟行业技术趋势&#xff0c;还要结合研发团队现状及痛点&#xff0c;探索新的交付方案。在日常中&#xff0c;你是否遇到如下问题 “ 业务需求排期长研发是瓶颈&#xff1b;非研发角色感受不到研发技改提效的变化&#xff1b;引入ISV …...

基于YOLOv5n/s/m不同参数量级模型开发构建茶叶嫩芽检测识别模型,使用pruning剪枝技术来对模型进行轻量化处理,探索不同剪枝水平下模型性能影响【续】

这里主要是前一篇博文的后续内容&#xff0c;简单回顾一下&#xff1a;本文选取了n/s/m三款不同量级的模型来依次构建训练模型&#xff0c;所有的参数保持同样的设置&#xff0c;之后探索在不同剪枝处理操作下的性能影响。 在上一篇博文中保持30的剪枝程度得到的效果还是比较理…...

深度解析 Llama 2 的资源汇总:不容错过

“ 探索 Llama 2 背后的过程&#xff0c;包括了模型的全面解析&#xff0c;在线体验&#xff0c;微调&#xff0c;部署等&#xff0c;这份资源汇总将带您深入了解其内涵。” 01 — 周二发布了文章《中文大模型 Chinese-LLaMA-Alpaca-2 开源且可以商用》后&#xff0c;不少朋友们…...

Git 删除 GitHub仓库的文件

新建文件夹 git bash here 在新建的文件夹里右键git bash here打开终端&#xff0c;并执行git init初始化仓库 git clone <你的地址> 找到github上要删除的仓库地址&#xff0c;并复制&#xff0c;在终端里输入git clone <你的地址> 要删除文件的库里右键git b…...

如何使用 ChatGPT 将文本转换为 PowerPoint 演示文稿

推荐&#xff1a;使用 NSDT场景编辑器 助你快速搭建可二次编辑的3D应用场景 步骤 1&#xff1a;将文本转换为幻灯片演示文稿 第一步涉及指示 ChatGPT 根据给定的文本生成具有特定数量幻灯片的演示文稿。首先&#xff0c;您必须向 ChatGPT 提供要转换的文本。 使用以下提示指示…...

html(七)meta标签

一 meta标签 1、背景&#xff1a;发现自带某些请求头2、本文没有实际的生产应用场景,仅仅作为技术积累 ① meta标签含义 1、metadata: 元数据,是用于描述数据的数据,它不会显示在页面上,但是机器却可以识别2、应用场景&#xff1a; [1]、SEO搜索引擎优化[2]、定义页面使用…...

《Go 语言第一课》课程学习笔记(五)

入口函数与包初始化&#xff1a;搞清 Go 程序的执行次序 main.main 函数&#xff1a;Go 应用的入口函数 Go 语言中有一个特殊的函数&#xff1a;main 包中的 main 函数&#xff0c;也就是 main.main&#xff0c;它是所有 Go 可执行程序的用户层执行逻辑的入口函数。 Go 程序在…...

Golang 并发编程基础

runtime 包&#xff0c;定义了协程管理相关的 API runtime.Gosched() package mainimport ("fmt""runtime" )func main() {go func() {for i : 0; i < 5; i {fmt.Println(i)}}()// 让出当前CPU给其他协程runtime.Gosched()fmt.Println("end...&qu…...

代码随想录算法训练营(二叉树总结篇)

一.二叉树的种类 1.满二叉树&#xff1a;就是说每一个非叶子节点的节点都有两个子节点。 2.完全二叉树&#xff1a;此二叉树只有最后一层可能没填满&#xff0c;并且存在的叶子节点都集中在左侧&#xff01;&#xff01;&#xff01; &#xff08;满二叉树也是完全二叉树&…...

华为开源自研AI框架昇思MindSpore应用案例:基于MindSpore框架的UNet-2D案例实现

目录 一、环境准备1.进入ModelArts官网2.使用CodeLab体验Notebook实例 二、环境准备与数据读取三、模型解析Transformer基本原理Attention模块 Transformer EncoderViT模型的输入整体构建ViT 四、模型训练与推理模型训练模型验证模型推理 近些年&#xff0c;随着基于自注意&…...

Python入门【TCP建立连接的三次握手、 TCP断开连接的四次挥手、套接字编程实战、 TCP编程的实现、TCP双向持续通信】(二十七)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小王&#xff0c;CSDN博客博主,Python小白 &#x1f4d5;系列专栏&#xff1a;python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 &#x1f4e7;如果文章知识点有错误…...

React笔记-React入门

主要是现在要改一个开源项目&#xff0c;需要学习下React入门&#xff0c;在此记录一下。 几个关键的库 React底层核心&#xff1a;react.development.js React操作DOM库&#xff1a;react-dom.development.js 解析ES6语法&#xff1a;babel.min.js React.createElement() …...

SD WebUI 扩展:prompt-all-in-one

sd-webui-prompt-all-in-one 是一个基于 Stable Diffusion WebUI 的扩展&#xff0c;旨在提高提示词/反向提示词输入框的使用体验。它拥有更直观、强大的输入界面功能&#xff0c;它提供了自动翻译、历史记录和收藏等功能&#xff0c;它支持多种语言&#xff0c;满足不同用户的…...

Go和Java实现中介者模式

Go和Java实现中介者模式 下面通过一个同事之间相互通信的例子来说明中介者模式的使用。 1、中介者模式 中介者模式是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类&#xff0c;该类通常处理不同类之间的 通信&#xff0c;并支持松耦合&#xff0c;使代码…...

CentOS系统环境搭建(十五)——CentOS安装Kibana

centos系统环境搭建专栏&#x1f517;点击跳转 关于Elasticsearch的安装请看CentOS系统环境搭建&#xff08;十二&#xff09;——CentOS7安装Elasticsearch。 CentOS安装Kibana 文章目录 CentOS安装Kibana1.下载2.上传3.解压4.修改kibana配置文件5.授予es用户权限6.kibana 后台…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题&#xff0c; 因为搜索范围是有界的&#xff0c;上界最大木板长度补充的全部木料长度&#xff0c;下界最小木板长度&#xff1b; 即left0,right10^6; 我们可以设置一个候选值x(mid)&#xff0c;将木板的长度全部都补充到x&#xff0c;如果成功…...