呦柚子
码龄9年
关注
提问 私信
  • 博客:49,374
    49,374
    总访问量
  • 100
    原创
  • 868,305
    排名
  • 201
    粉丝
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2016-03-05
博客简介:

柚子

查看详细资料
个人成就
  • 获得28次点赞
  • 内容获得12次评论
  • 获得125次收藏
  • 代码片获得105次分享
创作历程
  • 86篇
    2021年
  • 21篇
    2020年
成就勋章
TA的专栏
  • 数据结构
    13篇
  • 算法相关秋招题目
    9篇
  • 贪心 + 单调栈(最大 / 小 的序列等)
    3篇
  • 位运算
    10篇
  • 剑指 Offer
    9篇
  • ali编程题练习
    10篇
  • LeetCode
    58篇
  • 二叉树
    7篇
  • DFS|BFS
    9篇
  • 机器学习与数据分析
    8篇
  • HuaWei编程题练习
    4篇
  • ByteDance编程题练习
    1篇
  • 数据库
    1篇
  • 数据处理
    1篇
兴趣领域 设置
  • 人工智能
    机器学习深度学习神经网络数据分析
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

[数据结构与算法] 二分查找II —变形问题

几种二分查找的变形问题。????????“十个二分九个错”。注意:终止条件、区间上下界更新方法、返回值选择。???????? 下述变形问题的前提是数据均以从小到大排序。变形一:查找第一个值等于给定值的元素????​ 二分查找最简单的一种即有序数据集合中不存在重复的数据,在其中查找值等于某个给定值的数据。 将这个问题修改为:有序数据集合中存在重复的数据,找到第一个值等于给定值的数据,如下有序数组,其中,a[5],a[6],a[7]的值都等于 8,是重复的数据,要查找第一个等于 8 的数据,也就是下标
原创
发布博客 2021.11.03 ·
429 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

[数据结构与算法] 二分查找 I

一种针对有序数据集合的查找方法:二分查找(Binary Search),折半查找。二分思想二分查找是一种非常简单易懂的快速查找算法。猜测0-99中的目标数字,target = 23 。如果是 0 到 999 的数字,最多也只要 10 次就能猜中。对有序表折半查找,其最坏情况下查找一个元素的最大比较次数将介于1和 [ log2n ] + 1 ( n为元素的个数)之间。假设有 10 个订单,订单金额分别是:8,11,19,23,27,33,45,55,67,98。利用二分思想,每次都与区间的中间
原创
发布博客 2021.11.03 ·
579 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

[数据结构与算法] Recursion — 递归

Recursion — 递归递归是一种应用非常广泛的算法(或者编程技巧)。很多数据结构和算法的编码实现都要用到递归,比如 DFS 深度优先搜索、前中后序二叉树遍历等等。基本上,所有的递归问题都可以用递推公式来表示。递归需要满足的三个条件一个问题的解可以分解为几个子问题(子问题就是数据规模更小的问题)的解这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样存在递归终止条件如何编写递归代码?写递归代码最关键的是写出递推公式,找到终止条件,剩下的就是将递推公式转化为代码。上台阶、
原创
发布博客 2021.11.03 ·
350 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

[数据结构与算法] 链表 II

[数据结构与算法] 链表 II一、理解指针或引用的含义二、警惕指针丢失和内存泄漏(单链表)三、利用“哨兵”简化实现难度引入”哨兵“????‍♂️举例对比有无哨兵的情况四、重点留意边界条件处理五、举例画图,辅助思考六、多写多练一、理解指针或引用的含义有些语言有“指针”的概念,比如 C 语言;有些语言没有指针,取而代之的是“引用”,比如 Java、Python。不管是“指针”还是“引用”,都是存储所指对象的内存地址。将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指针,或者反过来说,指针中存储了这个
原创
发布博客 2021.11.03 ·
233 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

[数据结构与算法] 链表 I

链表结构底层的存储结构 如上图,数组需要一块连续的内存空间来存储,对内存的要求比较高。如果申请一个 100MB 大小的数组,当内存中没有连续的、足够大的存储空间时,即便内存的剩余总可用空间大于 100MB,仍然会申请失败。而链表并不需要一块连续的内存空间,它通过“指针”将一组零散的内存块串联起来使用,如果申请的是 100MB 大小的链表,根本不会有问题。三种最常见的链表结构,分别是:单链表、双向链表和循环链表。????单链表????链表通过指针将一组零散的内存块...
原创
发布博客 2021.11.03 ·
208 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

[数据结构与算法] 队列

CPU 资源是有限的,任务的处理速度与线程个数并不是线性正相关。相反,过多的线程反而会导致 CPU 频繁切换,处理性能下降。所以,线程池的大小一般都是综合考虑要处理任务的特点和硬件环境,来事先设置的。当向固定大小的线程池中请求一个线程时,如果线程池中没有空闲资源了,这个时候线程池如何处理这个请求?是拒绝请求还是排队请求?各种处理策略又是怎么实现的呢?这些问题并不复杂,其底层的数据结构就是队列(queue)。如何理解“队列”?队列:先进先出。栈只支持...
原创
发布博客 2021.11.02 ·
153 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

[数据结构与算法] 栈

关于“栈”,一个非常贴切的例子,就是一摞叠在一起的盘子。平时放盘子的时候,都是从下往上一个一个放;取的时候,也是从上往下一个一个地依次取,不能从中间任意抽出。后进者先出,先进者后出,这就是典型的“栈”结构。从栈的操作特性上来看,栈是一种“操作受限”的线性表,只允许在一端插入和删除数据。特定的数据结构是对特定场景的抽象,数组或链表暴露了太多的操作接口,操作上灵活自由,但使用时就比较不可控,自然也就更容易出错。当某个数据集合只涉及在一端插入和删除数据,...
原创
发布博客 2021.09.26 ·
1044 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

[数据结构与算法] 复杂度分析

数据结构和算法解决的是“快”和“省”的问题,所以执行效率是算法一个非常重要的考量指标。什么是复杂度分析?数据结构和算法解决是“如何让代码运行得更快,如何让代码更省存储空间”,需从执行时间和占用空间两个维度来评估数据结构和算法的性能。 分别用时间复杂度和空间复杂度两个概念来描述性能问题,二者统称为复杂度。 复杂度描述的是算法执行时间(或占用空间)与数据规模的增长关系。为什么要进行复杂度分析?事后统计法有非常大的局限性。测试结果非常依赖测试环境。测试环境...
原创
发布博客 2021.09.26 ·
306 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

[数据结构与算法] 大框

10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树;10 个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。...
原创
发布博客 2021.09.26 ·
87 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

leetcode — 1245.树的直径

链接:树的直径__牛客网给定一棵树,求出这棵树的直径,即树上最远两点的距离。包含n个结点,n-1条边的连通图称为树。示例1的树如下图所示。其中4到5之间的路径最长,是树的直径,距离为5+2+4=11输入6,[[0,1],[1,5],[1,2],[2,3],[2,4]],[3,4,2,1,5]输出11...
原创
发布博客 2021.09.24 ·
1182 阅读 ·
4 点赞 ·
2 评论 ·
4 收藏

[机器学习与数据分析] 集成学习结合策略

集成算法就是训练一堆基学习器,然后通过某种策略把各个基学习器的结果进行合成,从而得到集成学习器的结果。优点1)提高泛化性能 ​ 2)降低进入局部最小点的风险 ​ 3)扩大假设空间平均法简单平均、加权平均:对于数值类的回归预测问题,通常使用的结合策略是平均法,也就是说,对于若干个弱学习器的输出进行平均得到最终的预测输出。对数值型(连续)输出,最常见的结合策略为平均法。1)简单平均法(simple averaging)​2)加权平均法(weig...
原创
发布博客 2021.09.22 ·
1312 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

leetcode — 103. 二叉树的锯齿形层序遍历​(102、107)

给定一个二叉树,返回其节点值的锯齿形层序遍历(之字形)。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层序遍历如下:[ [3], [20,9], [15,7]]方法一:广度优先遍历此题是「102. 二叉树的层序遍历」的变种,最后输出的要求有所变化。...
原创
发布博客 2021.09.13 ·
112 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

leetcode — 234. 回文链表

给你一个单链表的头节点head,请你判断该链表是否为回文链表。如果是,返回true;否则,返回false。示例 1:输入:head = [1,2,2,1]输出:true示例 2:输入:head = [1,2]输出:false提示:链表中节点数目在范围[1, 105]内 0 <= Node.val <= 9进阶:你能否用O(n)时间复杂度和O(1)空间复杂度解决此题?方法一:将值复制到数组中后用双指针法复制链表值到数组...
原创
发布博客 2021.09.07 ·
357 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

leetcode — 125. 验证回文串

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true解释:"amanaplanacanalpanama" 是回文串示例 2:输入: "race a car"输出: false解释:"raceacar" 不是回文串提示:1 <= s.length <= 2 * 105 字符串s..
原创
发布博客 2021.09.07 ·
396 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

[机器学习与数据分析] 集成学习(Ensemble Learning)

在机器学习的有监督学习算法中,目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好)。集成学习就是组合这里的多个弱监督模型以期得到一个更好更全面的强监督模型,集成学习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来。集成学习在各个规模的数据集上都有很好的策略。 数据集大:划分成多个小数据集,学习多个模型进行组合。 数据集小:利用Boo...
原创
发布博客 2021.09.03 ·
994 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

leetcode — 二叉树的层序遍历 I & II

二叉树层序遍历 II 102给你一个二叉树,请你返回其按层序遍历得到的节点值。 (即逐层地,从左到右访问所有节点)。// Definition for a binary tree node.public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() {} TreeNode(int val) { this.val = val; } Tr...
原创
发布博客 2021.09.02 ·
173 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

leetcode — 33. 搜索旋转排序数组

整数数组nums按升序排列,数组中的值互不相同。在传递给函数之前,nums在预先未知的某个下标k(0 <= k < nums.length)上进行了旋转,使数组变为[nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标从 0 开始计数)。例如,[0,1,2,4,5,6,7]在下标3处经旋转后可能变为[4,5,6,7,0,1,2]。给你旋转后的数组nums和一...
原创
发布博客 2021.09.01 ·
232 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

leetcode — 46. 全排列(不含重复数字)

给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以按任意顺序返回答案。示例 1:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2:输入:nums = [0,1]输出:[[0,1],[1,0]]示例 3:输入:nums = [1]输出:[[1]]提示:1 <= nums.length <= 6 -10 <= nums...
原创
发布博客 2021.08.30 ·
2552 阅读 ·
1 点赞 ·
0 评论 ·
15 收藏

leetcode — 827. 最大人工岛

给你一个大小为n x n二进制矩阵grid。最多只能将一格0变成1。返回执行此操作后,grid中最大的岛屿面积是多少?岛屿由一组上、下、左、右四个方向相连的1形成。示例 1:输入: grid = [[1, 0], [0, 1]]输出: 3解释: 将一格0变成1,最终连通两个小岛得到面积为 3 的岛屿。示例 2:输入: grid = [[1, 1], [1, 0]]输出: 4解释: 将一格0变成1,岛屿的面积扩大为 4。示例 3:输入:...
原创
发布博客 2021.08.30 ·
358 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

leetcode — 695. 岛屿的最大面积

给定一个包含了一些0和1的非空二维数组grid。一个岛屿是由一些相邻的1(代表土地) 构成的组合,这里的「相邻」要求两个1必须在水平或者竖直方向上相邻。你可以假设grid的四个边缘都被0(代表水)包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0], [0,0,0,0,0,0,0,1,1,1,0,0,0], [0,1,1,0,1,0,0,0,0,0,0,0,0]...
原创
发布博客 2021.08.30 ·
178 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多