自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阿乐的专栏

眼看千遍,不如手敲一遍

  • 博客(25)
  • 资源 (5)
  • 收藏
  • 关注

原创 LeetCode 73.矩阵置零

public void setZeroes(int[][] matrix) { int m=matrix.length; int n=matrix[0].length; boolean[] row=new boolean[m]; boolean[] col=new boolean[n]; for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ if(matrix[i][j]==0){

2021-07-09 10:16:54 155 3

原创 LeetCode 70.爬楼梯

一、题目详情假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意: 给定 n 是一个正整数。示例:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶二、思路设f(n)为爬n阶楼梯的方法,根据我们最后一步迈1个还是2个台阶,很容易得到f(n)=f(n-1)+f(n-2)。这就是个斐波那契数列的问题呀,初始值f(1)=1,f(2)=2。我们可以直接采用递归的方法:publi

2021-07-08 09:24:16 99

原创 LeetCode 65.有效数字

一、题目详情有效数字(按顺序)可以分成以下几个部分:一个 小数 或者 整数(可选)一个 ‘e’ 或 ‘E’ ,后面跟着一个 整数小数 (按顺序)可以分成以下几个部分:3. (可选)一个符号字符(’+’ 或 ‘-’)4. 下述格式之一:1. 至少一位数字,后面跟着一个点 ‘.’2. 至少一位数字,后面跟着一个点 ‘.’ ,后面再跟着至少一位数字3. 一个点 ‘.’ ,后面跟着至少一位数字整数 (按顺序)可以分成以下几个部分:(可选)一个符号字符(’+’ 或 ‘-’)至少一位数字

2021-07-07 11:43:25 231

原创 LeetCode 57.插入区间

一、题目详情给你一个 无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。示例:输入:intervals = [[1,3],[6,9]], newInterval = [2,5]输出:[[1,5],[6,9]]二、思路将新区间newInterval与区间列表intervals中的区间依次比较,如果可以合并就合并区间。如果不能合并,就判断newInterval是在intervals[i]的左侧还是右侧。

2021-07-06 12:36:46 95

原创 LeetCode 56.合并区间

一、题目详情以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。示例:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].二、思路如果采用双层循环去比较每两个区间,再决定是否

2021-07-03 11:16:11 99 1

原创 LeetCode 28.实现strStr()

一、题目详情实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与 C 语言的 strstr() 以及 Java 的 indexOf() 定义相符。示例:输入:haystack =

2021-07-02 08:59:54 86

原创 LeetCode 21.合并两个有序链表

一、题目详情将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]二、思路简单题,既然两个链表都已经排好序了,那么只需要依次比较就可以了,直到其中一个链表为空。三、代码/** * Definition for singly-linked list. * public class ListNode { * int val; *

2021-07-01 09:42:39 67

原创 LeetCode 20.有效的括号

一、题目详情给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例:输入:s = “([)]”输出:false二、思路记得上数据结构课的时候,老师还讲过这个例子。很容易就能想到用栈来解决,将字符串中的字符依次入栈,每次push之前先和栈顶元素进行比较,如果相符,那就将栈顶元素pop出去。如果不相符,就将这个字符入栈。最后判断栈是否为空,就知道这个字符

2021-06-30 16:01:06 78

原创 LeetCode 15.三数之和

一、题目详情给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意: 答案中不可以包含重复的三元组。示例:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]二、思路首先能想到的就是嵌套三层循环,找到所有满足条件的组合,然后再进行复杂繁琐的去重操作,太过麻烦,时间复杂度O(N³)。而先进行去重操作,然后使用普通的三层循环,这样

2021-06-30 10:20:50 78

原创 LeetCode 8.字符串转换整数

一、题目详情请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步骤读入的这些数字转换为整数(即

2021-06-30 09:53:41 121

原创 LeetCode 1. 两数之和

一、题目详情给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。二、思路首先能想到的就是,两层循环,遍历数组中的每一种组合。类似于概率论

2021-06-29 09:57:15 78

原创 ToDoList——记录每天要做事情的一个APP

ToDoList发现自己有点拖延症,就写了个APP,记录每天要做的事情。一、Gif试一试二、界面一览三、炫技了整个程序没有使用任何第三方开源库,虽说不要重复造轮子,可也得是我自己研究透彻的啊。程序中写了4个自定义View,CalendarView是日历,GraphView是图表,ClockView是时钟,还有WheelView是滚轮,时间选择控件。之后会把几个自定义Vie...

2019-03-21 10:30:24 10371 1

原创 基本数据结构之树、图

一、二叉树 以下采用链表结构来实现上图的二叉树:#include <cstdlib>#include <iostream>using namespace std;struct mNode{ int mData; struct mNode *left; struct mNode *right;};void PreOrder(mNode *node)

2017-06-19 09:56:51 1389

原创 基本数据结构之栈、队列、链表

一、栈栈实现的是一种后进先出(last-in,first-out,LIFO)策略,在栈中被删除的都是最近插入的元素。 栈上的insert操作被称为压入(PUSH),而无元素参数的DELETE操作被称为弹出(POP)。 我们简单地用定长的数组来实现栈:#include <cstdlib>#include <iostream>using namespace std;struct MyStack

2017-06-18 17:32:31 283

原创 排序之插入、归并、快速排序

一、插入排序最简单的排序方法,类似玩扑克,开始时我们的左手为空,之后我们每次从桌子上拿走一张牌并插入左手中的正确位置。 我们可以将牌分为三部分,左手中的已排序好的牌,右手中的一张牌,桌子上的一堆牌。而为了找到一张牌的正确位置,我们从右到左将它与已在手中的每张牌进行比较,保证左手中的牌总是排序好的。 public void insertionSort(int a[]){ for

2017-05-25 12:08:55 397

原创 自定义View基础之——图片加载进度条

按照惯例,先看效果图,再决定要不要往下看: 既然看到这里了,应该是想了解这个图片加载进度条了,我们先看具体用法,再看自定义View的实现:RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:custom="http://schemas.android.com/apk/r

2016-08-18 11:35:52 1630 1

原创 自定义View基础之——canvas,paint的基本用法

了解了View的绘制流程,并不是立刻就能自定义View了,我们还是需要工具的,那就是Canvas和Paint。不是很了解VIew的,请看上一篇博客,自定义View基础之——初识View。Canvas代表画布,Paint代表画笔,有了画笔和画布,通过Canvas提供的API,我们当然想画什么就画什么了,接下来我们就看看绘图的基本方法。而在绘图之前,我们通常需要初始化画笔,设置下画笔的各个属性:

2016-08-12 16:24:32 2630 1

原创 自定义View基础之——初识View

一个界面永远离不开各种各样的控件,而这些控件,无论是TextView,Button,ImageView,甚至ListView等等,他们都有一个共同的基类,那就是View。但是,哪怕有了如此多的控件,有时候依旧满足不了我们设计师的胃口,时不时会冒出各种各样酷炫吊炸天的界面,这时候就需要我们自己去自定义View了。例如说,绘制一个圆形头像,绘制图片的加载进度条,或者实现上拉刷新下拉加载的操作等等,这些

2016-08-10 23:53:23 658

原创 再说Viewpager,详解PagerAdapter

终于看到这篇博客了,我被坑的地方就在接下来的内容,所以才被逼着写了上一篇博客。最初是因为想实现Galley的效果,可以在一个界面中显示三张图片。实现的方式就是设置clipChildren为false,先看具体代码:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orient

2016-08-01 00:09:25 797

原创 clipChildren属性以及各种ScaleType

这篇博客,其实是为了下篇博客服务的,原本写了篇ViewPager的,结果中间碰到clipChildren的问题,还因为ScaleType折腾了好久。之前也一直没有搞清楚,没认真研究过ScaleType,每次写代码,习惯性的就将imageview的ScaleType设为CENTER_CROP,为什么呢?因为方便啊,CENTER_CROP可以直接填满整个View,而且是宽和高都是同比例放大。终于,这次

2016-07-31 10:20:33 1795

原创 ViewPager+Fragment滑动页面,tabbar跟着实时滑动

反正都写了几篇ViewPager了,也不差这一篇了,官方推荐,绝配:Viewpager+Fragment先看效果图吧,再决定往不往下看。不说废话,直接看代码,先看整个页面的布局文件act_main.xml:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" and

2016-07-29 06:40:14 2404

原创 ViewPager无限循环滑动无卡顿,详解OnPageChangeListener

说下OnPageChangeListener这个接口的三个方法:onPageScrolled(int position, float positionOffset, int positionOffsetPixels),当页面正在滑动的时候调用此方法,一直到页面在停止之前,都会得到调用。其中,postion代表当前页面;positionOffset值在0到1之间,指当前页面偏移的百分比;positionOffsetPixels代表当前页面偏移的像素位置。onPageSelected(int positio

2016-07-27 22:29:54 5003 2

原创 Android拍照和获取相册图片

之前遇到各种拍照啊,获取相册图片之类,都是直接去度娘,要么之前的代码复制下,没好好总结过。再也不要问度娘了,再也不用一堆博客里找啊找了。。。----------------------------------------------我是正文的分割线-----------------------------------------------------------一个一个来,先说调用手

2016-07-21 20:32:10 8384

原创 android表情功能开发

之前写过一个发帖界面,但是从来没有认真整理过,现在该写的写完了,好好整理下,不说废话,直接上效果图。(以下所有图片,全部来自百度贴吧客户端“借用”)这个发帖界面主要实现功能包括,图片的上传,表情的实现。习惯性,从设计师那里拿到界面,先考虑布局,然后开始编写xml,如下面这个文件main.xml:<RelativeLayout xmlns:android="http:/

2015-03-12 15:38:06 1439 4

原创 viewpager左右循环滑动,自动滑动广告栏

demo采用了viewpager实现循环滑动和自动滑动的广告栏。

2014-12-17 18:27:01 1278 5

自定义View之——图片加载进度条

对应博客的代码

2016-08-18

ViewPager+Fragment滑动页面,tabbar跟着实时滑动

ViewPager+Fragment滑动页面,tabbar跟着实时滑动

2016-07-29

Android拍照和获取相册图片demo

Android拍照和获取相册图片

2016-07-21

Android拍照和获取相册图片

Android拍照和获取相册图片

2016-07-21

viewpager循环滑动自动滑动

demo采用viewpager实现了自动滑动,循环左右滑动的广告栏。

2014-12-17

空空如也

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

TA关注的人

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