牛客算法题
文章平均质量分 52
yuedongla
哦哦哦哦
展开
-
牛客例题一百遍:最长回文子串
寻找第K大描述示例1解体思路思路一思路二描述对于一个字符串,请设计一个高效算法,计算其中最长回文子串的长度。给定字符串A以及它的长度n,请返回最长回文子串的长度。示例1输入:"abc1234321ab",12返回值:7解体思路思路一暴力求解,求出所有字串,判断是否为回文数,代码如下: public int getLongestPalindrome(String A, int n) { // write code here int maxCount = 0原创 2021-08-27 16:46:26 · 499 阅读 · 1 评论 -
牛客例题一百遍:子数组的最大累加和问题
子数组的最大累加和问题描述示例1解体思路思路一思路二描述给定一个数组arr,返回子数组的最大累加和例如,arr = [1, -2, 3, 5, -2, 6, -1],所有子数组中,[3, 5, -2, 6]可以累加出最大的和12,所以返回12.题目保证没有全为负数的数据[要求]时间复杂度为O(n)O(n)O(n),空间复杂度为O(1)O(1)O(1)示例1输入:[1, -2, 3, 5, -2, 6, -1]返回值:12解体思路思路一贪心算法,代码如下:public int fi原创 2021-08-27 15:01:47 · 233 阅读 · 1 评论 -
牛客例题一百遍:寻找第K大
寻找第K大描述示例1示例2解体思路思路一思路二描述有一个整数数组,请你根据快速排序的思路,找出数组中第KKK大的数。给定一个整数数组aaa ,同时给定它的大小n和要找的K(1≤K≤N)K(1\leq K \leq N)K(1≤K≤N) ,请返回第KKK大的数(包括重复的元素,不用去重),保证答案存在。要求时间复杂度为O(n)O(n)O(n)示例1输入:[1,3,5,2,2],5,3返回值:2示例2输入:[10,10,9,9,8,7,5,6,4,3,4,2],12,3返回值:9说明:去原创 2021-08-27 14:17:20 · 336 阅读 · 1 评论 -
牛客例题一百遍:最小的K个数
最小的K个数描述示例1示例2示例3解体思路思路一思路二思路三描述给定一个数组,找出其中最小的K个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。0 <= k <= input.length <= 100000 <= input[i] <= 10000示例1输入:[4,5,1,6,2,7,3,8],4 返回值:[1,2,3,4]说明:返回最小的4个数即可,返回[1,3,2,4]也可以 示例2输入:[1],0返回原创 2021-08-26 18:10:24 · 138 阅读 · 0 评论 -
牛客例题一百遍:在二叉树中找到两个节点的最近公共祖先
在二叉树中找到两个节点的最近公共祖先描述示例1解体思路思路一思路二描述给定一棵二叉树(保证非空)以及这棵树上的两个节点对应的val值 o1 和 o2,请找到 o1 和 o2 的最近公共祖先节点。注:本题保证二叉树中每个节点的val值均不相同示例1输入:[3,5,1,6,2,0,8,#,#,7,4],5,1返回值:3解体思路思路一分三步:层序遍历找到父节点,存入一个hashmap中求出两点父节点数组遍历,找到最近的父节点代码如下:public int lowestCommon原创 2021-08-26 11:31:38 · 507 阅读 · 0 评论 -
牛客例题一百遍:判断链表中是否有环
判断链表中是否有环描述示例1示例2示例1解体思路思路一思路二描述判断给定的链表中是否有环。如果有环则返回true,否则返回false。你能给出空间复杂度O(1)的解法么?输入分为2部分,第一部分为链表,第二部分代表是否有环,然后回组成head头结点传入到函数里面。-1代表无环,其他的数字代表有环,这些参数解释仅仅是为了方便读者自测调试示例1输入:{3,2,0,-4},1返回值:true说明:第一部分{3,2,0,-4}代表一个链表,第二部分的1表示,-4到位置1,即-4->2存在一个原创 2021-08-25 15:34:25 · 302 阅读 · 0 评论 -
牛客例题一百遍:设计LRU缓存结构
设计LRU缓存结构描述示例1示例2解体思路思路一思路二描述设计LRU(最近最少使用)缓存结构,该结构在构造时确定大小,假设大小为K,并有如下两个功能set(key, value):将记录(key, value)插入该结构get(key):返回key对应的value值提示 :某个key的set或get操作一旦发生,认为这个key的记录成了最常使用的,然后都会刷新缓存。当缓存的大小超过K时,移除最不经常使用的记录。输入一个二维数组与K,二维数组每一维有2个或者3个数字,第1个数字为原创 2021-08-25 14:43:40 · 147 阅读 · 0 评论 -
牛客例题一百遍:反转链表
牛客例题一百遍描述示例1解体思路思路一思路二思路三描述输入一个链表,反转链表后,输出新链表的表头。示例1输入:{1,2,3}返回值:{3,2,1}解体思路思路一最简单思路,把链表中的东西取出来放在数组中,然后直接一个个反转就行了,代码如下: public ListNode ReverseList(ListNode head) { if (head == null) { return null; } ArrayList原创 2021-08-25 11:53:22 · 145 阅读 · 1 评论 -
牛客例题一百遍:重排链表
重排链表按之字形顺序打印二叉树示例1示例2示例3解体思路思路一思路二按之字形顺序打印二叉树示例1输入:{1,2,3,4}返回值:{1,4,2,3}说明:给定head链表1->2->3->4, 重新排列为 1->4->2->3,会取head链表里面的值打印输出 示例2输入:{1,2,3,4,5}返回值:{1,5,2,4,3}说明:给定head链表1->2->3->4->5, 重新排列为 1->5>2->4-&原创 2021-08-25 11:05:59 · 125 阅读 · 1 评论 -
例题:单词倒排
例题:单词倒排描述输入描述:输出描述:示例1示例2解题思路描述对字符串中的所有单词进行倒排。说明:1、构成单词的字符只有26个大写或小写英文字母;2、非构成单词的字符均视为单词间隔符;3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;4、每个单词最长20个字母;输入描述:输入一行以空格来分隔的句子输出描述:输出句子的逆序示例1输入:I am a student输出:student a am I示例2输入:原创 2021-08-19 16:41:33 · 312 阅读 · 1 评论 -
旋转字符串(二)
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结学习目标:学习内容:学习时间:学习产出:前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。原创 2021-08-18 19:13:23 · 254 阅读 · 1 评论 -
牛客例题一百遍
牛客例题一百遍按之字形顺序打印二叉树示例1示例2示例3解体思路思路一思路二功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入按之字形顺序打印二叉树给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直原创 2021-08-18 18:00:06 · 180 阅读 · 1 评论