- 博客(35)
- 收藏
- 关注
原创 ACM金牌选手算法讲解《线性表》
哈喽,大家好,我是编程熊,双非逆袭选手,字节跳动、旷视科技前员工,ACM亚洲区域赛金牌,保研985研究生,分享算法与数据结构、计算机学习经验,帮助大家进大厂~公众号:『编程熊』文章首发于: ACM金牌选手算法讲解《线性表》!戳这里!线性表LeetCode刷题过程中,常常用到的线性表主要包括以下四个重要的数据结构: 数组、链表、栈、队列。下面将分别讲解数组、链表、栈和队列。线性表概述线性: 这里的线性是逻辑上的连续,而非物理存储的连续。存储的数据: 线性表是一个有n个相同类型数据的有序序列。
2021-07-19 09:04:08 351 1
原创 ACM金牌选手整理的【LeetCode刷题顺序】
算法和数据结构 知识结构图首先,了解算法和数据结构有哪些知识点,在学习中形成 大局观,对学习和刷题十分有帮助。下面是我花了一天时间整理的算法和数据结构的知识结构,大家可以看看。后面是为大家 精心挑选的LeetCode题单,并根据题目知识点的类型分好了类别,大家可以根据每个知识点,进行有针对性的刷题。数据结构数组&双指针LeetCode 1. 两数之和LeetCode 4. 寻找两个正序数组的中位数LeetCode 15. 三数之和LeetCode 75. 颜.
2021-07-10 21:28:39 1062
原创 和大家说个事儿(文末附更新计划)
正事儿哈喽,大家好,我是编程熊。最近这两天没有更新,在准备公众号迁移的事情,也在想怎么为大家学习和求职路上提供帮助。由于微信2018年以后注册的公众号都没有留言功能了,现在有两个办法解决:小程序,没有原生的体验好,遂放弃。账号迁移,直白的说就是从有留言号的获得留言功能,最后选择了这种,但要白花花的银子(捂脸哭)。所以近期大家会收到推送的关于【一只编程熊】账号迁移通知,提前和大家说声,不用担心我是不是跑路了,哈哈哈。更新计划迁移完成后会发一些干货!内推,帮大家内推的都是编程熊的好朋友,
2021-07-07 10:00:38 246
原创 【LeetCode每日一题 Day 5】5. 最长回文子串
大家好,我是编程熊,今天是LeetCode每日一题的第五天,一起学习LeetCode第五题《最长回文子串》。题意给你一个字符串 s,找到 s 中最长的回文子串。示例输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。题解方法一采用简单暴力的方法,枚举每一个位置为单独回文中心(长度为奇数的子串,如 aba)或者回文中心中的一个(长度为偶数的子串,如abba),同时向左和向右扩展查看是否相等,直至 不相等 或 到字符串开头/结尾 停止扩展。最坏的情况下,如 .
2021-07-04 10:02:03 215
原创 【LeetCode每日一题 Day 4】4. 寻找两个正序数组的中位数
大家好,我是编程熊,今天是LeetCode每日一题的第四天,一起学习的是LeetCode第四题《寻找两个正序数组的中位数》。题意给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。示例输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2题解方法一最容易想到的办法是,因为数组是有序的,将两个数组合并,然后直接找到中位数,这样做的时间复杂度是 .
2021-07-03 11:35:54 354 1
原创 【LeetCode每日一题 Day 3】3. 无重复字符的最长子
大家好,我是一只编程熊,今天是LeetCode每日一题的第三天,学习的是LeetCode第三题《无重复字符的最长子串》。题意给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。题解观察样例,我们可以发现,依次递增地枚举子串的起始位置,那么合法的结束为止一定是递增的,因为对于起始位置 i-1 ,假设其不含有重复字符的最远右位置 j;那么对于起始位置为 i 的子串.
2021-07-02 12:37:32 248 3
原创 【LeetCode每日一题 Day 2】2. 两数相加
大家好,我是编程熊,今天是LeetCode每日一题的第二天,一起学习的是LeetCode第二题《两数相加》。题意给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.题解因为链表是逆序的,所以.
2021-07-01 09:14:58 109
原创 【LeetCode每日一题 Day 1】1. 两数之和
大家好,我是编程熊,今天是LeetCode每日一题的第一天,今天的你比昨天更加优秀啦!题意给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。样例输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回.
2021-06-30 09:36:16 224 3
原创 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest
2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest
2017-11-07 09:12:57 408
原创 UVA10003
题意: 经典DP切木棍,求min费用。思路:最优子结构,状态方程,再考虑下转移。 #include#include#include#include#include#include#include#include#include#include#include#define ll long longusing namespace std;co
2017-08-29 14:39:33 426
原创 UVA348
题意: DP经典题, 矩阵连乘,求最小运算次数,输出运算优先级(用括号给出)。思路: 不难定义出状态,dp[i][j] = min(dp[i][k]+dp[k+1][j]+乘法费用); 可以看出大区间确定的前提是小区间已经算出, 所以必须从小到大枚举区间长度,在枚举起 点, 便可以确定终点,在枚举一下
2017-08-28 10:27:37 319
原创 UVA11584
题意: 给一个字符串, 要求把它分割成若干个子串,使得每个子串都是回文串。问最少可以分割成多少个 ?思路:不难想到,d【i】:表示以i结尾最少可以分几个字符串。d【i】= min(d【i】,d【j】+1)(j 这样的复杂度是O(n^3), 可以预处理出s的所有回文串(o(n^2)) 这样就把复杂度
2017-08-27 15:08:39 577
原创 codeforces722D
题意:给定一个集合Y,集合Y有一些1e9以内的正整数组成,求一个集合X,拥有和集合Y一多的元素,每一个在X集合 中的元素可以*2或者*2+1,且 进行任意次操作之后变为Y集合,求一种X集合使得X集合中的最大值最小思路: 分析后,就是一个二叉树的问题; #include#include#include#include#inclu
2017-08-23 21:10:35 838
原创 UVA437
题目大意:有n种长宽高为x,y,z的砖头,每种都有无数个。砖头可以用不同姿势的方向来盖。砖头a以某种姿势可以盖在砖头b上,当且仅当a的底部的长宽都要比b的底部长宽要小。问最高可以建多高?思路: 经典的DAG上的dp,把图建好后,d[i]:表示以i为起点的最大高度(可以画一个DAG图理解一下)#include#i
2017-08-23 10:33:02 227
原创 codeforces722C
题意题解 :一开始理解错题意,以为选择与当前破坏不重叠, 实际上是选所有破坏的不重叠的,如果按照错误理解的 直接树状数组就可以,模板套一下就可以。 回到这题,从网上看了一下有三种解法,现在整理一下: (1) 并查集:把删除的顺序倒着思考就是倒向添加,用并查集维护一下这个过程就好,需要注意的一点
2017-08-21 12:04:36 423
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人