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

数组

一、数组中重复的数字

题目描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。

解题思路:考虑用哈希表进行操作。第一遍遍历整个数组更新哈希表值,第二遍遍历哈希表中对应元素值大于1的元素,输出该元素即为待查找元素。

classSolution {
public:// Parameters://        numbers:     an array of integers//        length:      the length of array numbers//        duplication: (Output) the duplicated number in the array number// Return value:       true if the input is valid, and there are some duplications in the array number//                     otherwise falseboolduplicate(int numbers[], int length, int* duplication){//判空操作if(numbers==NULL||length==0)returnfalse;//定义并遍历哈希表int hashpub[7]={0};for(int i=0;i<length;i++){hashpub[numbers[i]]++;}for(int j=0;j<length;j++){if(hashpub[numbers[j]]>1){duplication[0]=numbers[j];returntrue;}}returnfalse;}
};

二、二维数组中的查找

题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

解题思路:本题可以从左下角或者右上角两个方向进行搜索,以从左下角搜索为例,若左下角的数字小于待查找数字,则应该继续往该行右侧查找;若左下角的数字大于待查找数字,则应该从上面的行查找。

#方法一:从左下角开始遍历
classSolution {
public:boolFind(int target, vector<vector<int> > array){//判空操作if(array.empty())returnfalse;int row=array.size()-1; //行遍历int column=0;while(row>=0&&column<array[0].size()){if(array[row][column]==target)returntrue;elseif(array[row][column]>target){row--;}elsecolumn++;}returnfalse;}
};
#方法二:从右上角开始遍历
classSolution {
public:boolFind(int target, vector<vector<int> > array){if(array.empty())return0;int row=0;int col=array[0].size()-1;while(col>=0&&row<array.size()){if(target==array[row][col])return1;elseif(target<array[row][col])col--;elserow++;}return0;}
};

三、构建乘积数组

题目:给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。(注意:规定B[0] = A[1] * A[2] * ... * A[n-1],B[n-1] = A[0] * A[1] * ... * A[n-2];)

解题思路:这里可以考虑B[j]=(A[0]*...*A[j-1])*(A[j+1]*...*A[n-1])两部分分别求解,先对右半部分乘,再对左半部分乘。

classSolution {
public:vector<int> multiply(const vector<int>& A){int n=A.size();vector<int>B(n);int ret=1;//求右边for(int i=0;i<n;ret*=A[i++]){B[i]=ret;}ret=1;for(int j=n-1;j>=0;ret*=A[j--]){B[j]*=ret;}return B;}
};

四、调整数组顺序使奇数位于偶数前面

题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

解题思路:本题要求不仅仅是奇数部分位于前半部分,还有偶数部分位于后半部分,要想保证相对位置不变,就不能单纯通过穷举遍历来进行交换,因此在这里我用冒泡排序来解决,时间复杂度是

编辑。

classSolution {
public:voidreOrderArray(vector<int> &array){//使用冒泡排序for(int i=0;i<array.size();i++)  //外层控制趟数for(int j=array.size()-1;j>i;j--)if(array[j]%2!=0&&array[j-1]%2==0){int tmp=array[j];array[j]=array[j-1];array[j-1]=tmp;}}
};

五、旋转数组的最小数字(考点:查找)

题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。

NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。

解题思路:本题可以考虑使用顺序查找的方法,时间复杂度为o(n)。同时,亦可以考虑使用二分查找的思路,由题目可以知后面部分总比前面部分小,那么只要将中间元素和左右两边进行对比,就可以知道最小值是在哪一边了,然后循环使用这种方法,最终只要right和left相邻,则right值即为最小值位置。

注意:在《剑指offer》中指出了两种我们需要考虑的情况

1、若排序数组的前面0个数字跑到最后面(即数组没变化),那么这时候第一个元素就是最小值,不用进行这么多遍历了

2、如果存在只挪动了1个元素的数组(如:{0,1,1,1}->{1,0,1,1}),这时候只能靠直接遍历了

classSolution {
public:intminNumberInRotateArray(vector<int> rotateArray){//判空操作if(rotateArray.empty())return0;int left=0,right=rotateArray.size()-1,mid=left;while(rotateArray[left]>=rotateArray[right]){mid=(left+right)/2;if(right-left==1){mid=right;break;}if(rotateArray[mid]<=rotateArray[right])right=mid;elseif(rotateArray[mid]>=rotateArray[left])left=mid;if(rotateArray[left]==rotateArray[mid]&&rotateArray[left]==rotateArray[right])returnByOrder(rotateArray,left,right);}if(left>=right)return0;return rotateArray[mid];}intByOrder(vector<int>a,int l,int r){int min=a[l];for(int i=l;i<=r;i++)if(a[i]<min){min=a[i];}return min;}
};

六、调整数组顺序使奇数位于偶数前面

题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

解题思路:两次遍历,第一次遍历只保存奇数的数,第二次保存在第一次的基础上,只是这次保留的是偶数。

classSolution {
public:voidreOrderArray(vector<int> &array){int size=array.size();if(size==0) return;vector<int>res;for(int i=0;i<size;i++){if(array[i]%2!=0)res.push_back(array[i]);}for(int i=0;i<size;i++){if(array[i]%2==0)res.push_back(array[i]);}array=res;}
};

反思:如果题目没有相对位置不变的要求?那么考虑使用快慢指针,头指针遍历前面的,尾指针遍历后面的,头指针遍历到偶数就和尾指针交换值,尾指针遍历到奇数就和头指针交换值。

classSolution {
public:voidreOrderArray(vector<int> &array){int size=array.size();if(size==0) return;int begin=0,end=size-1;while(begin<end){while(begin<end&&array[begin]%2!=0)begin++;while(begin<end&&array[end]%2==0)end--;//交换if(begin<end){int tmp=array[begin];array[begin]=array[end];array[end]=tmp;}}}
};

七、旋转矩阵

题目要求:实现矩阵顺时针旋转90度

解题思路:找到替换公式,本题迎刃而解。即

编辑

//方法一:时间复杂度和空间复杂度皆为O(n^2)classSolution {
public:voidrotate(vector<vector<int>>& matrix){int n = matrix.size();// C++ 这里的 = 拷贝是值拷贝,会得到一个新的数组auto matrix_new = matrix;for (int i = 0; i < n; ++i) {for (int j = 0; j < n; ++j) {matrix_new[j][n - i - 1] = matrix[i][j];}}// 这里也是值拷贝matrix = matrix_new;}
};
//方法二:节省空间复杂度的办法classSolution {
public:voidrotate(vector<vector<int>>& matrix){int n = matrix.size();for (int i = 0; i < n / 2; ++i) {for (int j = 0; j < (n + 1) / 2; ++j) {int temp = matrix[i][j];matrix[i][j] = matrix[n - j - 1][i];matrix[n - j - 1][i] = matrix[n - i - 1][n - j - 1];matrix[n - i - 1][n - j - 1] = matrix[j][n - i - 1];matrix[j][n - i - 1] = temp;}}}
};

反思:

水平翻转:

编辑

主对角线翻转:

八、数组中只出现一次的数字

题目描述:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。

解题思路:本题考查了异或操作。

  • 首先,从头到尾遍历,遍历出来不相同的数字

  • 然后通过位运算便利出来第二个出现了一次的数字

  • 最后找出来第一个出现了一次的数字

classSolution {
public:voidFindNumsAppearOnce(vector<int> data,int* num1,int *num2){int len=data.size();if(len<2) return;int counter=0;//先从头到尾遍历,遍历出来不同的数字for(int i=0;i<len;i++)counter=data[i]^counter;int flag=1;while(flag){if(flag&counter)break;flag=flag<<1; //逐个遍历}for(int i=0;i<len;i++){if((data[i]&flag)) *num1=*num1^data[i];else *num2=*num2^data[i];}}
};

九、数字在排序数组中出现的次数

题目描述:统计一数字在排序数组中出现的次数。

解题思路:使用两次遍历的方法,第一次使用二人查找,把相同的末位元素遍历出来;第二遍在数相同的有多少个。

classSolution {
public:intGetNumberOfK(vector<int> data ,int k){int start,end,mid,count=0,i;unsignedint len = data.size();if(!len)return0;start =0;end = len-1;mid = start;while(start<end){mid = (start+end)/2;if(k >data[mid])start = mid+1;if(k<data[mid])end = mid-1;if(k==data[mid])break;}i=mid;while( (i>=0) && (k==data[i])){i--;count++;}i=mid+1;while((i<len)&& (k==data[i]) ){i++;count++;}return count;}
};

十、剑指 Offer II 001. 整数除法(力扣

题目描述:给定两个整数 a 和 b ,求它们的除法的商 a/b ,要求不得使用乘号 '*'、除号 '/' 以及求余符号 '%' 。

解题思路:使用减法代替除法。

classSolution {publicintdivide(int a, int b) {if(a==Integer.MIN_VALUE&&b==-1)return Integer.MAX_VALUE;int sign=((a>0)^(b>0))?-1:1;if(a>0)a=-a;if(b>0)b=-b;int res=0;while(a<=b){a-=b;res++;}return sign==1?res:-res;}
}

十一、剑指 Offer II 006. 排序数组中两个数字之和

思路:使用二分查找

class Solution {public int[] twoSum(int[] numbers, int target) {for(int i=0;i<numbers.length;i++){int left=i+1,right=numbers.length-1;while(left<=right){int mid=(left+right)/2;if(target-numbers[i]==numbers[mid]){return new int[]{i,mid};}if(target-numbers[i]<numbers[mid]){right=mid-1;}else{left=mid+1;}}}return new int[]{-1,-1};}
}

相关文章:

数组

一、数组中重复的数字题目描述&#xff1a;在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的&#xff0c;但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如&#xff0c;如果输入长度为7的数组{2,3,1…...

MicroBlaze系列教程(4):AXI_UARTLITE的使用

文章目录 @[toc]AXI_UARTLITE简介MicroBlaze添加串口IP常用函数使用示例参考资料工程下载本文是Xilinx MicroBlaze系列教程的第4篇文章。 AXI_UARTLITE简介 axi_uartlite是Xilinx提供axi-lite接口的通用串口IP核,用AXI-Lite总线接口和用户进行交互,速度可以根据不同的芯片调…...

GO 中的 init 函数

前言 go 语言中有一个非常神奇的函数 init ,它可以在所有程序执行开始前被执行&#xff0c;并且每个 package 下面可以存在多个 init 函数&#xff0c;我们一起来看看这个奇怪的 init 函数。 init 特性 init 函数在 main 函数之前执行&#xff0c;并且是自动执行&#xff1b…...

使用C#编写k8s CRD Controller

本文项目地址&#xff1a;k8s-crd - Repos (azure.com)CRDCRD指的是Custom Resource Definition。开发者更多的关注k8s对于容器的编排与调度&#xff0c;这也是k8s最初惊艳开发者的地方。而k8s最具价值的地方是它提供了一套标准化、跨厂商的 API、结构和语义。k8s将它拥有的一切…...

Ansible---playbook剧本

目录 引言&#xff1a;什么是playbook&#xff1f; 一、Playbook 1.1、playbook中的核心元素 1.2、playbook中的基础组件 1.3、playbook格式说明 1.4、实例&#xff1a;httpd服务剧本 二、playbook中的模块 2.1、Templates 模块 2.2、tags 模块 2.3、Roles 模块 引言&…...

Delphi 中TImageCollection和TVirtualImageList 控件实现high-DPI

一、概述RAD Studio允许你通过使用TImageCollection组件和TVirtualImageList组件&#xff0c;在你的Windows VCL应用程序中包含缩放、高DPI、多分辨率的图像。这两个组件位于Windows 10面板中&#xff1a;注意&#xff1a;如果你使用FireMonkey进行跨平台应用&#xff0c;请看T…...

Ros中如何给UR5配置自定义工具 | 在Rviz中给UR5机器人装载定义工具 | UR5配置自定义末端执行器

前言 在学习和项目研究的过程中&#xff0c;我需要在Ur5e上装上工具&#xff0c;以对现实场景进行仿真。网上会有一些装载/配置现成的夹爪&#xff0c;例如Robotiq等。但和我们装载自定义工具的场景还有些差异&#xff0c;因此写一篇博客记录&#xff0c;可能有偏差。如果有问…...

数据库 delete 表数据后,磁盘空间为什么还是被一直占用?

插&#xff1a; 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家一起学习鸭~~~ 最近有个上位机获取下位机上报数据的项目&#xff0c…...

docker-微服务篇

docker学习笔记1.docker简介1.1为什么会出现docker&#xff1f;1.2docker理念1.3虚拟机&#xff08;virtual machine&#xff09;1.4容器虚拟化技术1.5一次构建到处运行2.docker安装2.1前提条件2.2docker基本构成2.3docker安装步骤*2.4测试镜像3.docker常用命令3.1 启动docker3…...

图像优化篇

目录&#xff08;1&#xff09;矢量图&#xff08;2&#xff09;位图 2.1 分辨率2&#xff0c;图像格式格式选择建议&#xff1a;&#xff08;1&#xff09;矢量图 被定义为一个对象&#xff0c;包括颜色&#xff0c;大小&#xff0c;形状&#xff0c;以及屏幕位置等属性&…...

在surface go 2上安装ubuntu 20.04

在surface go 2上安装ubuntu 20.04 1.制作安装盘 下载ubuntu系统的iso文件 使用Rufus软件将u盘制作为ubuntu系统的安装盘 2.在surface go 2上操作 禁用快速启动 在 Windows 中&#xff0c;禁用“电源选项”中的“快速启动”>选择电源按钮的功能 禁用 Bitlocker 在 Wi…...

Java:SpringMVC的使用(1)

目录第一章、SpringMVC基本了解1.1 概述1.2 SpringMVC处理请求原理简图第二章、SpringMVC搭建框架1、搭建SpringMVC框架1.1 创建工程【web工程】1.2 导入jar包1.3 编写配置文件(1) web.xml注册DispatcherServlet(2) springmvc.xml(3) index.html1.4 编写请求处理器【Controller…...

自动化测试岗位求职简历编写规范+注意事项,让你的简历脱颖而出

目录 前言 1.个人信息 2.教育背景(写最高学历) 3.个人技能(按精通/掌握/熟练/了解层次来写) 4.工作经历 5.工作经验/项目经历 6.自我评价 总结 前言 挑选一个阅读舒适度不错的模板 HR和面试官看的简历多&#xff0c;都是快速阅读&#xff0c;舒适度特别重要&#xff1b…...

C 字符串

在 C 语言中&#xff0c;字符串实际上是使用空字符 \0 结尾的一维字符数组。因此&#xff0c;\0 是用于标记字符串的结束。空字符&#xff08;Null character&#xff09;又称结束符&#xff0c;缩写 NUL&#xff0c;是一个数值为 0 的控制字符&#xff0c;\0 是转义字符&#…...

【每日一题Day115】LC2335装满杯子需要的最短总时长 | 贪心

装满杯子需要的最短总时长【LC2335】 You have a water dispenser that can dispense cold, warm, and hot water. Every second, you can either fill up 2 cups with different types of water, or 1 cup of any type of water. You are given a 0-indexed integer array amo…...

Flink流计算处理-旁路输出

使用Flink做流数据处理时&#xff0c;除了主流数据输出&#xff0c;还自定义侧流输出即旁路输出&#xff0c;以实现灵活的数据拆分。 定义旁路输出标签 首先需要定义一个OutputTag&#xff0c;代码如下&#xff1a; // 这需要是一个匿名的内部类&#xff0c;以便我们分析类型…...

nginx正向代理的配置和使用

nginx正向代理的配置和使用 nginx正向代理的配置和使用nginx正向代理的配置和使用安装包准备下载nginx安装包下载正向代理模块的包版本与模块对照表部署nginx服务上传nginx包和正向模块包解压,改名安装nginx配置正向代理创建nginx用户检查nginx配置并启动nginx服务所在服务器验…...

Oracle Trace File Analyzer 介绍及简单使用

一、什么是Oracle Trace File Analyzer Oracle Autonomous Health Framework(AHF) 包含 Oracle ORAchk, Oracle EXAchk, and Oracle Trace File Analyzer(TFA). AHF工具包包含了Oracle常用的多种诊断工具&#xff0c;如 ORAchk, Oracle EXAchk, and Oracle Trace File Analyzer…...

面试实战篇 | 快手本地生活,结合项目谈Redis实战项目场景?MySQL InnoDB存储引擎如何工作的?策略模式?

本期是【你好&#xff0c;面试官】系列文章的第21期&#xff0c;持续更新中…。 《你好&#xff0c;面试官》系列目前已经连载20篇了&#xff0c;据说看了这个系列的朋友都拿到了大厂offer~ 你好&#xff0c;面试官 | 你真的理解面向 “对象”&#xff1f;你好&#xff0c;面…...

Hadoop之——WordCount案例与执行本地jar包

目录 一、WordCount代码 (一)WordCount简介 1.wordcount.txt (二)WordCount的java代码 1.WordCountMapper 2.WordCountReduce 3.WordCountDriver (三)IDEA运行结果 (四)Hadoop运行wordcount 1.在HDFS上新建一个文件目录 2.新建一个文件&#xff0c;并上传至该目录下…...

利用git reflog 命令来查看历史提交记录,并使用提交记录恢复已经被删除掉的分支

一.问题描述 当我们在操作中手误删除了某个分支&#xff0c;那该分支中提交的内容也没有了&#xff0c;我们可以利用git reflog这个命令来查看历史提交的记录从而恢复被删除的分支和提交的内容 二.模拟问题 1.创建git仓库&#xff0c;并提交一个文件 [rootcentos7-temp /da…...

【软件测试】大厂测试开发你真的了解吗?测试开发养成记......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 在一些大公司里&…...

Redis中的hash结构和扩容机制

1.rehash原理 hash包含两个数据结构为字典数组ht[0]和ht[1]。其中ht[0]用来存放数据&#xff0c;ht[1]在rehash时使用。 扩容时&#xff0c;ht[1]的大小为第一个大于等于ht[0].used*2的2的幂次方的数&#xff1b; 收缩时&#xff0c;ht[1]的大小为第一个大于等于ht[0].used的…...

【C++奇技淫巧】前置自增与后置自增的区别(++i,i++)【2023.02.08】

简介 先说i和i的区别&#xff0c;判断语句中if(i)是拿i的值先判断&#xff0c;而后自增&#xff1b;if(i)是先自增i再进行判断。涉及到左值与右值也有点区别&#xff0c;i返回的是右值&#xff0c;i返回的是左值。也就是下面的代码要解释的东西。 #include <iostream>i…...

实战打靶集锦-005-HL

**写在前面&#xff1a;**记录一次曲折的打靶经历。 目录1. 主机发现2. 端口扫描3. 服务枚举4. 服务探查4.1 浏览器访问4.2 目录枚举4.3 探查admin4.4 探查index4.5 探查login5 公共EXP搜索6. 再次目录枚举6.1 探查superadmin.php6.2 查看页面源代码6.3 base64绕过6.4 构建反弹…...

铁路系统各专业介绍(车机工电辆)

目录 1 车务段 1.1 职能简介 1.2 路段名单 1.3 岗位级别 2 机务段 2.1 职能简介 2.2 路段名单 2.3 岗位级别 3 工务段 3.1 职能简介 3.2 路段名单 3.3 岗位级别 4 电务段 4.1 职能简介 4.2 路段名单 4.3 岗位级别 5 车辆段 5.1 职能简介 5.2 路段名单 5.3 …...

2/11考试总结

时间安排 7:30–7:50 读题&#xff0c;T1貌似是个 dp &#xff0c;T2 数据结构&#xff0c;T3 可能是数据结构。 7:50–9:45 T1&#xff0c;点规模非常大&#xff0c;可以达到 1e18 级别&#xff0c;感觉应该没法直接做&#xff0c;考虑每条新增的边的贡献&#xff0c;想到用 …...

Java Set集合

7 Set集合 7.1 Set集合的概述和特点 Set集合的特点 不包含重复元素的集合没有带索引的方法&#xff0c;所以不能使用普通for循环 Set集合是接口通过实现类实例化&#xff08;多态的形式&#xff09; HashSet&#xff1a;添加的元素是无序&#xff0c;不重复&#xff0c;无索引…...

【手写 Vuex 源码】第七篇 - Vuex 的模块安装

一&#xff0c;前言 上一篇&#xff0c;主要介绍了 Vuex 模块收集的实现&#xff0c;主要涉及以下几个点&#xff1a; Vuex 模块的概念&#xff1b;Vuex 模块和命名空间的使用&#xff1b;Vuex 模块收集的实现-构建“模块树”&#xff1b; 本篇&#xff0c;继续介绍 Vuex 模…...

EOC第六章《块与中枢派发》

文章目录第37条&#xff1a;理解block这一概念第38条&#xff1a;为常用的块类型创建typedef第39条&#xff1a;用handler块降低代码分散程度第41条&#xff1a;多用派发队列&#xff0c;少用同步锁方案一&#xff1a;使用串行同步队列来将读写操作都安排到同一个队列里&#x…...

宁波营销型网站建设优化建站/上海百度公司总部

经常遇到这样的情况&#xff0c;要取得所有客户的最新交易记录&#xff0c;读取网站所有浏览者最后一次访问时间。一个客户只读取最新的一次记录&#xff0c;相同&#xff0c;大部分的人首先想到的就是排除所有记录&#xff0c;相同的只取一条。用distint,但是distint只能取到一…...

山东烟台城乡建设学校官方网站/网站推广多少钱

函数组说明&#xff1a;外部应用程序 F4 界面模块。当ABAP 开发者想要自己设计 F4 帮助&#xff0c;不用 SAP 提供的标准值帮助时&#xff0c;可以使用下列函数。 CONVERSION_EXIT_ALPHA_RANGE_ICONVERSION_EXIT_ALPHA_RANGE_OCONVERSION_EXIT_ISOLA_RANGE_ICONVERSION_EXIT_IS…...

wordpress 媒体库 链接/市场营销实务

系统消息和通知 阻塞队列 BlockingQueue时一个接口&#xff0c;又许多实现类 Kafka入门 高吞吐量&#xff1a;Kafka是硬盘顺序读取&#xff1a;硬盘顺序读取高于内存的随机读取。 高可靠性&#xff1a;分布式的集群 高扩展性&#xff1a;加集群很方便 Broker&#xff1a;K…...

公司设计网站需要多少钱/中国新闻

mina框架的使用非常简单&#xff0c;并且功能强大&#xff0c;将复杂的NIO操作封装成一套成熟的框架&#xff0c;在mina的使用中&#xff0c;我们只需要实现编解码器、信息处理器等就可以建立一个支持NIO通信的B/S程序。但是了解mina的源码对我们认识这个框架以及NIO都有很大帮…...

东莞智通人才网官网首页/seo关键字排名

10月27日消息&#xff0c;据路透社报道&#xff0c;富士通公司周四证实&#xff0c;正在与联想商谈在设计和制造PC上进行合作&#xff0c;不过表示将保留自己的PC品牌。此声明的发布&#xff0c;正值日益复杂的智能手机和平板电脑侵蚀PC市场之时&#xff0c;而全球PC销售早在5年…...

wordpress默认登陆地址/余姚网站如何进行优化

【单选题】决定微机性能的主要是().【单选题】急、慢性骨髓炎患者最好选用:【单选题】计算机中对数据进行加工与处理的部件,通常称为().【单选题】西米替丁治疗十二指肠溃疡的机制为:【单选题】计算机系统的内部总线,主要可以分为()、数据总线和地址总线.【单选题】计算机的软件…...