牛客经典算法集
记录刷牛客中遇到的经典题目
zgkdwx
这个作者很懒,什么都没留下…
展开
-
NC105 二分查找
题目描述 请实现有重复数字的有序数组的二分查找。 输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一。 示例1 输入 复制 5,4,[1,2,4,4,5] 输出 复制 3 题解: 注意结束条件是left <= right,应为mid计算是下取整,如果用 left < right的话有可能无法访问到right package com.wx.nowcoder; public class NC105 { public s..原创 2020-09-08 00:09:07 · 143 阅读 · 0 评论 -
NC判断给定的链表中是否有环
题目描述 判断给定的链表中是否有环 扩展: 你能给出空间复杂度O(1)的解法么? 题解: 方法一: 快慢指针法。慢指针一次走一步,快指针一次走两步,如果有环,快慢指针总会在某一点相遇。 方法二: 类似哈希法。遍历链表的每个节点,将其指针都指向head节点,如过存在环,则head一定会被再次访问 package com.wx.nowcoder; public class NC4 { //方法一:快慢指针 public boolean hasCycle1(ListNode原创 2020-09-05 23:15:54 · 96 阅读 · 0 评论 -
NC32求平方根
题目描述 实现函数int sqrt(int x). 计算并返回x的平方根 示例1 输入 复制 2 输出 复制 1 package com.wx.classical_code; public class NC32 { public int sqrt(int x) { if (x == 0) return 0; if (x == 1) return 1; int left = 1; int right = x .原创 2020-09-05 18:27:40 · 217 阅读 · 0 评论