本周参加了一次笔试,四个算法设计题,当时什么都不会,回来研究了两天,下面为研究结果:
1、判断一个整数是否是素数[size=medium]
当时连素数的概念都不知道了,于是当成奇数去写了,真是惭愧啊
/**算法设计:
*素数是指只能被 1 和它本身整除的数字,那么,从 2 到 N-1 之间,如果有任何一个数能*整除 N ,则 N 就不是素数,所以只需要对 N 从 2 到 N-1 进行循环取整即可。但是,只*需要判断到 N/2 就可以了,甚至只需要判断到 N 开平方即可,原因:假设 i*i=N,如果 *N 能被整除,那么其中一个数肯定小于 i ,另一个肯定大于 i ,或者直接就是 i 。
*另外,因为 1 不是素数,所以提前将 1 排除。
*/
public boolean isPrime(int n){
//1不是素数
if(n<=1){
return false;
}else{
for (int i = 2; i <= Math.sqrt(n); i++) {
//如何一时间忘了开平方怎么写,可以循环到n/2
//for(int i=2;i<=n/2;i++){
if(n%i==0){
return false;
}
}
}
return true;
}
2、用二分查找法从一个整数数组中查找任意一个整数,如果存在,返回它在该数组中的位置,如果不存在,返回-1
/**
*说明:这个数组必须是有序的,因为对一个无序数组进行二分查找是没有任何意义的
*算法设计:
*1:设置一个低标志位low,一个高标志位high,一个中间标志位middle,将查找范围定为*整个数组,low为数组的最小下标,high为最下标,middle=(low+high)/2
*2:将 N 与数组中middle标志位的值进行比较,如果相等,则返回middle
*3:如果 N 小于middle标志位的值,则将查找范围定为数组的前半部分,将高标志位移至 *中间标志位的前一位,即high=middle-1
*4:如果 N 大于middle标志位的值,则将查找范围定为数组的后半部分,将低标志位移至
*中间标志位的后一位,即low=middle+1
*5:只要low小于high,则一直执行前3个步骤,如果low大于high,则表示该值不在数组中
*/
//非递归写法
public int binarySearch(int[] arr,int n){
int low = 0;
int high = arr.lenght;
while(low < high){
int middle = (low + high)/2;
if(n == arr[middle]){
return middle;
}else if(n < arr[middle]){
high = middle-1;
}else{
low = middle + 1;
}
}
return -1;
}
//递归写法
public int binarySearch(int[] arr,int n,int low,int high){
if(low > high){
return -1;
}
int middle = (low + high)/2;
if(n == arr[middle]){
return middle;
}else{
if(n < arr[middle]){
return binarySearch(arr,n,low, middle-1);
}else{
return binarySearch(arr,n,middle+1,high);
}
}
}[/size][/size][/size][/size]
分享到:
相关推荐
数据结构算法笔试题汇总 本资源摘要信息是关于数据结构和算法的笔试题汇总,涵盖了数据结构和算法的基础知识、常见题型和解题思路。 数据结构基础知识 数据结构是一门计算机科学中研究数据的逻辑结构、对各种数据...
- **问题描述**:一对兔子从第三个月开始每个月都会产下一对新兔子,而新生的兔子会在第四个月开始也每个月产下一对兔子。假设所有兔子都不会死亡,求每个月的兔子总数。 - **解决方法**:此问题可以用递归或迭代的...
首先,“DJI大疆2019年8月雷达算法工程师笔试题B卷”这一标题说明这是一次面向特定职位(雷达算法工程师)的招聘考试。大疆(DJI)是一家专门从事民用级无人机和航拍技术的制造商,因此笔试内容会涵盖相关专业知识。...
本资源包含了阿里巴巴最新的算法工程师笔试题,涵盖了算法、数据结构、计算机系统、概率论、统计学等多个领域。以下是对每道题目的解释和知识点总结: 1. 程序输出结果: 知识点:C++继承和多态、构造函数、虚函数...
vivo2019校招图像算法工程师笔试题 本资源是 vivo 2019 年的校招图像算法工程师笔试题,涵盖了算法、数据结构、机器学习等方面的知识点。 知识点 1:循环语句 在编程语言中,循环语句是非常重要的一种控制结构。...
数据结构与算法笔试题考点分析 数据结构与算法是计算机科学的基础课程,对计算机科学和技术专业的学生来说是非常重要的。数据结构与算法笔试题考点分析是指对数据结构与算法考试的内容和要求进行的系统性分析和总结...
本资源总结了小米2019秋招算法笔试题,涵盖了算法、数据结构、机器学习、线程和进程等多个领域。题目涉及二叉树的遍历、排序算法、贪心算法、机器学习中的正则化、线程和进程的概念等。通过本资源,可以了解小米秋招...
【算法笔试题解析】 1. 寻找最大两个数最少比较次数:答案是 c. n + logn -2。这是因为在最坏情况下,需要遍历所有元素并每次找到当前最大值,然后再找到第二大的值。 2. 二维数组访问:答案是 b. *(*(a+i)+j)。在...
在2014年的校招笔试中,应聘者可能面临了各种类型的算法问题,涵盖了数据结构、排序、搜索、图论等多个核心领域。 一、数据结构基础 数据结构是算法的基础,包括数组、链表、栈、队列、树、图等。在笔试中,可能会...
每次尝试沿着四个方向之一移动,如果移动合法(即不在障碍上),则继续搜索,直到找到出口或遍历完整个迷宫。 这些题目考察了基本的编程技巧和算法理解,包括递归、循环、字符串处理、数学逻辑以及图论中的路径搜索...
【算法笔试题详解】 在软件公司的招聘过程中,算法笔试题是评估候选人技术能力的重要环节。以下是一些典型的算法题目及其解析: 1. **整数逆序存储** 这道题要求递归地将整数逆序存储到数组中。`convert`函数通过...
四、编程和算法设计题 1. 打印一个数组中元素的所有组合 该题目考察了候选人的编程能力和算法设计能力。可以使用递归算法或动态规划算法来解决该问题。 2. 找出数组中t的位置 该题目考察了候选人的算法设计能力...
阿里巴巴作为中国知名的互联网巨头,对实习生的技术要求自然不低,其笔试题目往往涵盖了算法、操作系统、数据结构等多个核心计算机科学领域。以下是对这些题目详细解析: 一、倒序排列数组元素 这是一个基础的编程...
软件工程师经典笔试算法题是软件工程师面试中经常出现的算法笔试题,这篇文章将从六个方面对软件工程师经典笔试算法题进行详细的讲解。 一、将一整数逆序后放入一数组中 这个算法题考察了软件工程师对递归编程的...
1.算法时间复杂度:题目中出现了算法时间复杂度的知识点,算法时间复杂度是评价算法性能的一个重要指标。 2.过拟合:题目中出现了过拟合的知识点,过拟合是一种常见的问题,发生在模型过拟合训练数据时。 本资源...
给出的代码使用了DFS,通过四个方向(上、下、左、右)的邻接矩阵来探索迷宫。当遇到通路'o'时,继续探索;遇到障碍'X'则回溯。这体现了图论中的DFS算法和邻接矩阵的概念。 以上六个题目均属于计算机科学基础算法的...
根据给定的文件信息,以下是对每一道算法题目进行详细解析与知识点的总结: ...这些题目涵盖了递归、字符串操作、数组处理、组合问题等常见算法知识点,对于准备IT公司笔试的同学来说是非常好的练习材料。
在2014年的海康威视视音频算法工程师笔试中,考生可能会遇到一系列与视频处理、音频编码、信号处理以及相关技术的专业问题。这些试题旨在评估候选人在相关领域的理论知识、实际应用能力以及问题解决技巧。 一、视频...
【经纬笔试题】是经纬科技针对校园招聘,特别是Android方向所设计的一套笔试题目,旨在考察应聘者在Android开发领域的专业技能和理解能力。这样的笔试通常涵盖了Android平台的基础知识、编程实践、系统架构以及问题...