算法
文章平均质量分 59
码农小林
这个作者很懒,什么都没留下…
展开
-
【经典面试题三】x的平方根的两个解法(二分法,牛顿迭代)
题目在不使用sqrt(x)函数的情况下,得到x的平方根的整数部分例1:输入:24输出:4.例2:输入:25输出:5相信大家对题目的要求和描述都能了解,那我们直接上解法解法1:二分查找思路:x的平方根的整数部分肯定是在0~x之间的,所以我们可以直接将其转换为在以0开头的有序数组中使用二分查找定位该数字(设该数为n),那么n^2一定是最接近x的。n值的临界条件判断如果n * n > x,则n取x/2到x的中间数字,直到n * n < x,则n就是x的平方根的整数部分原创 2021-09-20 13:53:37 · 574 阅读 · 0 评论 -
【经典面试题二】统计素数个数的两种解决方法
提目:统计n以内的素数个数素数:只能被1和它自身整除的自然数,0、1除外例:输入:100输出:25解法一:暴力法(简单直接)通过循环来判断每一个数是否为素数。因为这个方法简单直接,所以直接贴代码(后面有方法优化)//暴力法public static int Bf(int n){ int count = 0; for(int i = 2; i < n; i++){ count += isPrime(i) ? 1:0;//使用三目运算判断是否为素数,是原创 2021-09-18 17:17:18 · 673 阅读 · 0 评论 -
【经典算法面试题一】反转链表的两种解决方法
类似题目:反转一个单链表输入:1->2->3->4->5输出:5->4->3->2->1解法1:迭代重复某一过程,每一次处理结果作为下一次的初始值,这些初始值类似于状态、每次处理都会改变状态、直至到达最终状态。先定义三个变量prev:保存当前节点的上一个节点;将当前节点的next指向上一个节点curr:保存当前节点;next:提前保存当前节点的下一个节点从前往后遍历步骤:1.将当前节点赋值给curr,curr = head;初始化pre原创 2021-09-17 22:18:05 · 272 阅读 · 0 评论 -
算法之一眼看透程序时间复杂度和空间复杂度
小林从开学至今都未发过文章,趁着今天是万圣节,重出江湖。本文转载自 键盘上的钢琴师_v5 的博客,原文链接在文章下方。时间复杂度时间复杂度定义在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度。记作:T(n)=O(f(n))。它表示随问题n的增大,算法执行时间的增长率和f(n)的增长...转载 2019-11-01 19:58:51 · 622 阅读 · 0 评论