自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (1)
  • 收藏
  • 关注

原创 Leetcode做题记录——多数元素

169. 多数元素难度简单1204收藏分享切换为英文接收动态反馈给定一个大小为n的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例1:输入:[3,2,3]输出:3示例2:输入:[2,2,1,1,1,2,2]输出:2进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。常规解法是用HashMap来计数,时间复杂度、空间复杂度都是O(...

2021-11-24 16:21:21 194

原创 Leetcode做题记录——通配符匹配

44. 通配符匹配给定一个字符串(s) 和一个字符模式(p) ,实现一个支持'?'和'*'的通配符匹配。'?' 可以匹配任何单个字符。'*' 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s可能为空,且只包含从a-z的小写字母。 p可能为空,且只包含从a-z的小写字母,以及字符?和*。示例1:输入:s = "aa"p = "a"输出: false解释: "a" 无法匹配 "aa" 整个字符串。示例2...

2021-05-28 14:58:31 189

原创 Leetcode做题记录——Pow(x, n)

实现pow(x,n),即计算 x 的 n 次幂函数(即,xn)。显然直接计算的话时间复杂度O(n),n很大的时候就会超时,这题一看就知道是快速幂。由于很多年没写过快速幂了大概出发点知道,琢磨很久没写出来,翻出了之前的代码,结合题解现在复习下。double answer = 1;double temp = x;while(n > 0) { if ((n & 1) > 0) { answer *= temp; } temp *= t...

2021-05-26 15:32:12 116

原创 Leetcode做题记录——最长连续序列

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。进阶:你可以设计并实现时间复杂度为O(n) 的解决方案吗?示例 1:输入:nums = [100,4,200,1,3,2]输出:4解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。示例 2:输入:nums = [0,3,7,2,5,8,4,6,0,1]输出:9提示:0 <= nums.length <= 104-109 <= nums[i.

2021-05-24 14:50:26 202

原创 Glide源码——Engine EngineJob部分

之前的文章分析了Engine获取ActiveResource、LruResourceCache两个缓存部分,当EngineKey没有找到对应的缓存时,Engine就需要通过EngineJob来获取资源。本篇文章涉及到的类:EngineJob、Jobs。首先判断是否有正在进行的EngineKey的EngineJob,有则把当前cb(其实是SingleRequest)传递给该EngineJob等待回调资源,然后直接返回。EngineJob<?> current = jobs.get(key

2021-05-18 17:37:00 141

原创 Leetcode做题记录——下一个排列

实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须 原地 修改,只允许使用额外常数空间。示例 1:输入:nums = [1,2,3]输出:[1,3,2]示例 2:输入:nums = [3,2,1]输出:[1,2,3]示例 3:输入:nums = [1,1,5]输出:[1,5,1]来源:力扣(LeetCode)链接:https://leetcode-cn.c

2021-04-12 17:29:26 71

原创 Leetcode做题记录——每日温度(单调栈)

739. 每日温度难度中等715请根据每日气温列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用0来代替。例如,给定一个列表temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是[1, 1, 4, 2, 1, 1, 0, 0]。提示:气温列表长度的范围是[1, 30000]。每个气温的值的均为华氏度,都是在[30, 100]范围内的整数。来...

2021-04-11 22:32:30 83

原创 Leetcode做题记录——寻找重复数

287. 寻找重复数给定一个包含n + 1 个整数的数组nums ,其数字都在 1 到 n之间(包括 1 和 n),可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 ,找出 这个重复的数 。输入:nums = [3,1,3,4,2]输出:3输入:nums = [2,2,2,2]输出:2提示:2 <= n <= 3 * 104nums.length == n + 11 <= nums[i] <= nnums 中 只有一个整数 出现...

2021-04-02 15:34:36 161

原创 Glide源码——Engine活动资源、内存缓存部分

本篇文章涉及ActiveResource、EngineResource、EngineKey、MemoryCache、LruResourceCache类。通过分析SingleRequest的源码我们知道,图片的加载是从Engine.load()开始:public synchronized <R> LoadStatus load( GlideContext glideContext, Object model, Key signature, int width, int heigh

2020-12-21 22:47:22 192

原创 Glide源码——SingleRequest

在分析RequestBuilder代码的时候我们提到,在调用into()方法的最后调用了requestManager.track(target, request)方法,从这里开始才是真正的去加载图片。synchronized void track(@NonNull Target<?> target, @NonNull Request request) { targetTracker.track(target); requestTracker.runRequest(request);

2020-12-15 18:22:15 293

原创 Glide源码——RequestManager

RequestManager主要有两个作用:1.创建RequestBuilder;2.通过生命周期管理请求的启动结束等;创建RequestBuilder入口方法是as(Class<ResourceType> resourceClass):public <ResourceType> RequestBuilder<ResourceType> as( @NonNull Class<ResourceType> resourceClass) {

2020-12-06 23:10:15 675

原创 Glide源码——RequestManagerRetriever

RequestManagerRetriever类负责RequestManager的创建,并通过创建RequestManagerFragment /SupportRequestManagerFragment 并与RequestManager进行绑定,来赋予RequestManager生命周期。这篇文章会涉及到com.bumptech.glide.manager目录下这么几个文件:RequestManagerRetriever、RequestManagerFragment、SupportRequestMa.

2020-12-04 21:21:50 507

原创 Glide源码——初始化

基于Glide v4.9,调用Glide.with(Context context)的时候,会触发Glide的初始化,内部是一个单例静态变量glide,初始化方法:initializeGlide(context, new GlideBuilder())。如果不希望使用Glide的默认配置,那么可以调用Glide的静态方法:public static synchronized void init(@NonNull Context context, @NonNull GlideBuilder builder),

2020-12-04 19:50:57 334

原创 劝君惜取少年时

劝君莫惜金缕衣,劝君惜取少年时。花开堪折直须折,莫待无花空折枝。——2019年即将逝去有感

2019-11-29 21:27:01 159

原创 毕设经验

1、func.cpp中用freopen保存文件后,没有fclose( stdout ),导致在encode.cpp中无法读取该保存的文件,困扰了很多天,以后切记每次文件操作后及时关闭输入输出流,这也是当初ACM使用freopen没有弄清的地方。2、func.cpp中freopen( "w" ),在func.cpp中必须放前面,不能放中间和后面,否则会出错,实在不知道是为什么;

2013-02-20 22:02:40 559

转载 【转载】你真的以为你的成绩是由你自己的努力换来的?

你真的以为你的成绩是全凭你自己的努力换来的?别扯了。这种话用来教育小孩子还可以,但是我们已经20多岁的人了,再这么欺骗自己是很无聊的事情。-从小学开始我就不算是一个好学生,因为那个时候我就对与做题目一点兴趣都没有,这就导致了我数学成绩不怎么样。另外,我对与读课文也没有兴趣。那个时候语文课要求读课文,我从来都是只张嘴不出声的。老师在讲台上说:要大声朗读,但是我自己一点也不在意

2012-12-30 22:42:02 508

原创 STL源码剖析之next_permutation,prev_permutation

next_permutation()会取得 [ first,last ) 所标示之系列的下一个排列组合。如果没有下一个排列组合,返回false,否则返回true。算法过程:首先从最尾端开始往前寻找两个相邻元素,令第一元素为 *i, 第二元素为 *ii ,且满足 *i 与next_permutation相反的函数是prev_permutation,算法过程:首先从最尾端开始往

2012-10-31 19:18:06 496

原创 伸展树(指针版本实现排序)

伸展树是大一暑假开始学的呃……非常有幸在今年ACM天津赛区网络赛上最后10分钟我把一道伸展树的题目给Accepted,确保我们学校在该场比赛出线……如果面试官问我是否会手写平衡树的话,我只能说会伸展树这一种了,而且伸展树似乎是非主流,其插入,查找等操作的均摊复杂度为log(n);优点不用多说,编码复杂度很低。具体知识点可以查阅相关资料,下面自己写了一个指针版本的伸展树实

2012-10-27 16:25:31 660

原创 二叉查找树的遍历总结

要准备面试了,最近才开始看些往年的笔试,面试题,今晚就写一篇最基础的二叉查找树的遍历总结吧。先序遍历:  先根,再左子树,最后右子树;中序遍历:  先左子树,再根,最后右子树;后序遍历:  先左子树, 再右子树,最后根;以上的每种遍历方式都对应有两种写法:递归与非递归;仅拿先序遍历的非递归方式来说(其余两种遍历类似)两者共同点: 对节点的遍历次序一致;

2012-10-26 09:08:12 719

原创 USACO 2012 March Contest, Silver Division

这次比赛的成绩太悲剧了:CHNChuanshun Yuan433*xx*xx*xxx**********第一题 Tractor题意:给定一个二维坐标图,[1,1000]坐标大小,有n题解:Solution

2012-03-12 17:07:04 2808

原创 Cf 95 Div.2

A题for循环判断从第2个字符开始是否全部是大写字母即可,注意如果字符串只有1个字符的情况;B题-10到10,只需要每个数都加上10,那么开一个20大小的数组,记录每个数的出现次数 f [ ],然后 sum= sigma ( f [ i ] * f [ 20-i ] ) | i另外 f [ 10 ] 表示0的个数,即C( f[10], 2 );C题注意不能多

2012-03-11 22:13:18 612

原创 Cf 97 Div.2

A题数组映射,读入t, 则p[ t ]= i; for( i, 1, n ) coutB题十进制,三进制的转换,+字符串处理;处理进制转换的时候,要求反串,额,下面是代码。/*Feb 20, 2012 11:35:13 AM yimao B-Ternary Logic GNU C++ Accepted 30ms 1400KB*/#include #includ

2012-03-02 20:50:36 643

原创 良好的编程习惯

1、在判断一个变量是否等于某个值时,大家一般喜欢if(ch == 8),这种虽然是对的,但是如果手喜欢不小心颤抖的,或一边聊天一边coding…这就危险了。。。因为你可能会把if(ch ==  打成 if(ch = 8).这个结果我就不说了,只能说要悲剧了~~~解决方法: if(8 == ch)这样就可以解决问题,就算你少打了一个”=”,编译器也会提示你错误的。要记住了!这是公认的好习惯。

2012-02-27 18:32:00 392 1

原创 Cf 98 Div.2

又ak了一场 div2。。。A题给定一个CCPPCCPPCCCCCPPPP这样的只有C,P的串,从左到右,每次最多取5个字符,每次取的字符必须相同,问最少要取多少次。我的代码比较短:每次循环定个初始位置,以该位置的下一个位置开始for循环4次.int main(){ int ans,i,n; char ch[110]; while(cin>

2012-02-16 16:54:51 549

原创 USACO 2012 February Contest, Bronze Division

终于没有辜负达尔戈的期望了,1000分。不出意外的话,3月的应该是silver了。2月份加油!A题想法题。枚举折叠点,有两类: knot点和非knot点,然后对于每个枚举的点进行for循环判断即可。#include #include #include #include #include using namespace std;#define MM(a,b

2012-02-14 21:31:02 1317

原创 Cf 105 Div.2

全部1A的,orz——————————。A题D很小,直接for(i,1,D) 。B题追击问题。我的做法:  while(1){ ... }    最开始 int front= T * vp.  那么 vd * times == front + vp* times; 算出times 然后判断是否有超过 dis,如果没有,则front+

2012-02-14 21:01:20 542

原创 Cf 101 Div.2

A题出现的字符及其次数全部匹配即可。B题推规律,注意细节,比如中线什么的。C题想法题,好题。给定n我的做法:输入的个数从小到大排序后,第一个必须: num[1]=0, 否则输出 -1;所有(当然包括第一个人)num[i]的人的高度指定是 5000,比如num[]= {  -1,0,0,0,2,2,3,4,5...  };开始是 5000

2012-02-07 19:53:35 562

原创 Cf 102 Div.2

A题我是for循环暴力作的,题解里最牛逼的做法是O(1):O(1) solution - one may derive it from the previous approach: since x+c = d1 => 2*x + r1 - c1 = d1 => x = (d1+c1-r1)/2So, you find x, check that it is in [0..9

2012-01-26 18:09:06 511 1

原创 Cf 104 div.2

A题if all digits are lucky and sum of the digits of the first half equals to the sum of the digits of the second half, then answer is YES, in other case - NO. All this can be checked by single loop

2012-01-23 19:21:29 565

原创 2012-01-20 ACM群群赛

1005题codeforces上某题的加强版,我也是弄了好久才ac的,代码比较暴力,m,length都不是很大 100*11000*10(可能写错了),1s内还是ac了。其中字符串的左移问题,我是把s串加倍,变成s+s然后再对s+s进行一个for循环预处理,判定的时候注意长度小于和等于length_s,还注意起点。。。见代码。。。/*2012-01-20 20:42:38

2012-01-21 16:08:27 989

原创 Cf 103 div.2

A题It's clear that the leftmost soldier with the maximum height should be the first and the rightmost soldier with the minimum height should be the last. Thus we will minimize the number of  swaps.

2012-01-19 21:45:52 517

原创 USACO 2012 January Contest, Bronze Division

在达尔的指导下,第一次做了这类比赛,在 Observers 里面的成绩:CHNChuanshun Yuan833********x************xxx*x****排了30+,被达尔戈

2012-01-16 21:41:44 1288

原创 Cf 99 Div.2

题目描述各种不好,帖子里有很多骂的话,我B题,D题看不懂,C题猜的,E题发现会做,但是没有时间了,赛后ak。A、直接累加就可以了。B、题目描述的不好。C、题目描述的不太好,算是水题D、模拟,贪心,问给数字串x,要怎么把两个x排的字符排列使得两个串相加(做十进制加法),末尾0最多。必须是这种形式  ...12800.....8720

2011-12-26 22:24:07 441

原创 hdu1004 map水题

<br />【题目链接】http://acm.hdu.edu.cn/showproblem.php?pid=1004<br /> <br />【题目大意】<br />给定n个串,求出现次数最多的串,要求输出该串;<br /> <br />【分析】<br />map水题,记录串,串每出现一次,map值便加1,具体见代码<br /> <br />【代码】<br /> <br />/*2011-04-25 14:14:43 Accepted 1004 15MS 284K 983 B C++ */#includ

2011-04-25 14:16:00 1873

原创 Codeforces Beta Round #23

<br />http://www.codeforces.com/contest/23<br /> <br />下面B,C都来自iSea大神的题解;<br />A题<br />【题意】<br />给定一个串,求其最长重复子串长度,<br /> <br />【分析】<br />考虑到长度为100,可以暴力,我考虑到在本机可以贴模板,用后缀数组写的,取height数组的最大值输出即可;<br /> <br />【暴力的好的代码】<br /> <br /> <br /> <br />【后缀数组代码】<br />/*

2011-04-24 21:39:00 639

原创 Codeforces Beta Round #64

A题:http://www.codeforces.com/contest/70/problem/A【题意】一个2^n+2^n个相同格子组成的正方形,要求在主对角线左下方区域填方块,方块的形状见题目示例吧,问最终填完方块后,最多剩下多少个没有填方块的格子;【分析】其实这题异常简单,可是比赛时候开始卡了,结果到1个半小时后才发现;很悲剧!n=0, ==》 1n=1, ==> 1n=2, ==>3n=3,==>9...找到规律就是3的倍数,对于每一个输入的n直接一个循环就可以ac,可我居然这么久之后才ac;注意要

2011-03-30 16:02:00 635

原创 Codeforces Beta Round #63 (Div. 2)

<br />A题:http://www.codeforces.com/contest/69/problem/A<br />看题目看得好久,后来才发现是个很简单的题,<br />题意: (0,0,0)处有一个点,给该点施加n个力,由三维坐标形式给出,要求判断最后该点是否平衡;<br />分析: 只需要将x,y,z三维坐标的各个力累加判断各自的和是否为0即可,注意必须每个维上的力的分量和为0,这里很好cha人的,可惜我没这么做,如果做了说不定分就好高了;<br />/*Mar29,2011 4:55:30 PM

2011-03-29 21:23:00 620

原创 Codeforces Beta Round #62(Div.1_3月19日)

比赛链接:http://www.codeforces.com/contest/68第一次做cf,规则很纠结,又是作为今年邀请赛选拔赛的比赛,纠结之下更是纠结,开始第一题读题不深入,直接跳第二题,又觉得第二题很难,于是到回去第一题,发现可以暴力写,于是写了,提交结果pretest passed,代码放那里,希望有人可以cha我,等一个多小时后没人cha,我便锁代码了;然后是看其他题,发现题意十分难读懂;赛后Re Judge,A题AC,rating是1406,第一次有rating了,可是第二题,linwei和我

2011-03-19 20:23:00 927 3

原创 并查集的几个没做过的题目

<br />http://ahxgw.tk/archives/disjoint-sets

2011-03-18 09:09:00 458

原创 hdu1409判断一个串是否是数字

<br />【题目链接】http://acm.hdu.edu.cn/showproblem.php?pid=1409<br /> <br />【题目大意】<br />给定一个串,判断其是否是一个数,会有小数点出现,E出现,或者空格出现等;<br /> <br />【分析】<br />数的特征:<br />数据由小数和整数部分组成 <br />小数部分可以是.11  也可以是 .  就是小数点后没有数据。 <br />整数也是一样的,可以是2 也可以是 空  <br /> 若要用指数表示,则E的前面必须有合法

2011-02-14 09:56:00 657

EasyBoot制作多功能系统启动盘简易教程

easyboot教程 多功能系统启动盘的制作 简易教程

2010-05-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除