自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 收藏
  • 关注

原创 【Leetcode】206. Reverse Linked List

方法一:递归思路:先翻转除去头结点后的链表,再把头结点插到翻转后的链表前面。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */publ

2017-01-31 09:05:41 329

原创 【Leetcode】205. Isomorphic Strings

思路:(1)求s和t的长度,分别记为lenS和lenT,若lenS不等于lenT,则返回false。(2)遍历字符串s,用Map记录s中字符到t中字符的映射。(3)对于s中的每个字符,若map中没有该字符对应的键,若map中已经有t中该位置字符对应的值,则返回false,否则存储s中字符到t中该字符的映射;若map中有该字符对应的键,则获取该字符对应的键所对应的值,若该值不等于t中该位

2017-01-30 21:42:00 333

原创 【Leetcode】501. Find Mode in Binary Tree

思路:(1)对二叉树进行中序遍历,遍历结果存入res。(2)遍历res,用map记录每个值出现的次数。(3)遍历map,找出出现次数最多的值,为方便,先将值存入set,再遍历set存入数组result。/** * Definition for a binary tree node. * public class TreeNode { * int val; *

2017-01-29 22:23:59 1708

原创 【Leetcode】204. Count Primes

思路:素数不能被比它小的整数整除, 建一个boolean 数组, 从2开始, 把其倍数小于n的都删掉。注意inner loop从i开始, 比i小的会在以前就被check过。public class Solution { public int countPrimes(int n) { boolean[] isPrime = new boolean[n];

2017-01-28 16:38:29 298

原创 【Leetcode】203. Remove Linked List Elements

思路:(1)若链表为空,则返回null。(2)遍历整个链表,cur指向当前判断的节点,pre指向其前驱结点。(3)若cur的值等于指定值,若cur指向的是头结点,则head指向cur的下一节点,pre指向cur;否则,pre的next指向cur的next。(4)cur指向下一节点。/** * Definition for singly-linked list. * publ

2017-01-27 17:10:56 341

原创 【Leetcode】202. Happy Number

思路:(1)用一个集合set存储求每一步得到的数。(2)对每一个数,若包含在集合中,则返回false。(3)把每一个数加入集合中。(4)对每一个数,求每一位的平方的和。public class Solution { public boolean isHappy(int n) { Set set =new HashSet(); while

2017-01-26 10:43:39 273

原创 【Leetcode】191. Number of 1 Bits

方法一:思路:判断一个整数最右边是不是1,可以把输入的整数和1相&,判断相&之后的结果,判断是不是为1,然后继续移位判断其它位。public class Solution { // you need to treat n as an unsigned value public int hammingWeight(int n) { int result

2017-01-25 08:27:01 386 3

原创 【Leetcode】190. Reverse Bits

方法一:思路:(1)先不处理n的最低位,它关系到逆序后的最高位是0还是1。(2)将其余位的逆序数组元素依次与2的0到31次幂异或即可得到逆序后对应位的值。 (3)若n的最低位是0,则逆序后是正数,最高位是0;若n的最低位是1,则逆序后是负数,最高位是1;需要异或(-2147483648)。public class Solution { // you need tre

2017-01-25 08:16:15 441 3

原创 【Leetcode】189. Rotate Array

思路:每k次移动会回到原样,只需移动k % nums.length次前部分反转,后部分反转,再整体反转。先将5以前的数据翻转得到的数组是[4,3,2,1,5,6,7]。再将5及以后的数据翻转得到的数组是[4,3,2,1,7,6,5]。再将整个数组翻转即得到[5,6,7,1,2,3,4]。注意:移动k次会超时。public class Solution {

2017-01-23 17:58:24 238

原创 【Leetcode】172. Factorial Trailing Zeroes

思路:(1)分解因子, 当且仅当 因子中出现 一对 (2,5)时, 最后结果会增加一个 trailing zero。(2)以对N!进行素数分解:N!=2^i****5^j***,则末尾0的个数为min(i,j)。又由于2的个数永远多于5的个数,索引i明显远大于j,所以只要求解j即可。public class Solution { public int trailingZeroes

2017-01-22 17:04:23 264

原创 【Leetcode】492. Construct the Rectangle

思路:(1)先求area的算术平方根取整end。(2)用num记录长和宽的最小差值,从1到end遍历,若当前数i能被area整除,则记j为area / i,再求j - i的差值,若比num小,则更新num,并记result为[i,j]。public class Solution { public int[] constructRectangle(int area) {

2017-01-22 16:56:11 1716

原创 【Leetcode】169. Majority Element

方法一:Hash表思路:(1)使用一个hash表,键用来存放数组的元素,键对应的值存放元素出现的次数。(2)遍历整个数组,查找它在hash表中是否出现,如果出现将出现次数加1,如果没有出现,将它插入hash表中,并设置它的出现次数为1。(3)每次遍历到一个元素,判断它的出现次数是否超过了数组长度的一半,要是超过了就返回该元素。public class Solution

2017-01-22 10:01:22 335

原创 【Leetcode】171. Excel Sheet Column Number

方法一:非递归public class Solution { public int titleToNumber(String s) { int result = 0, len = s.length(); for (int i = 0; i < len; i++) result = result * 26 + s.charAt(i

2017-01-20 14:06:23 257

原创 【Leetcode】168. Excel Sheet Column Title

方法一:递归思路:类似十进制,只是十进制是0-9,这个是1-26,所以唯一不同的是n-1,而不是n。public class Solution { public String convertToTitle(int n) { String result = ""; while (n > 0) { result = (cha

2017-01-18 09:45:15 336

原创 【Leetcode】165. Compare Version Numbers

思路:(1)以点号分割得到对应的数组v1和v2,不能写成.split("."),一个单独的"."表示任意字符。"\\."实际上被转义为两次,"\\"被转换为一个"\"字符,然后"\."表示对点字符进行转义,使点字符就表示字符".",而不使用它在正则表达式中的特殊意义。(2)求数组v1和v2的较大长度len。设置两个int型数组V1和V2,遍历两个数组,若索引i不小于数组长度,则在V1或V2

2017-01-17 10:10:14 292

原创 【Leetcode】485. Max Consecutive Ones

思路:(1)若数组长度为0,则直接返回0。(2)count记录当前连续1的个数,max记录到目前为止最大的连续1的个数。(3)遍历数组,判断每一位,若该位为0,则判断当前连续1的个数是否大于最大值,若是则需要更新最大值,判断完毕后还原count为0;若该位为1,则当前连续1的个数加一。(4)注意,遍历完毕后需要再判断当前连续1的个数是否大于最大值,若是则需要更新最大值。publ

2017-01-16 10:29:20 633

原创 浅谈MDN JavsScript

JavaScript 是一门跨平台、面向对象的轻量级脚本语言。JavaScript 内置了一些对象的标准库,如数组Array,日期Date,数学Math和包括运算符,流程控制符及声明方式等的一套核心语句。JavaScript 的核心部分可以通过添加对象来扩展语言以适应不同用途。---JavaScript 和 Java:JavaScript语言类似 Java,但没有Java的静态

2017-01-15 20:47:36 3398

原创 浅谈MDN CSS

CSS:Cascading Style Sheets层叠样式表CSS是一门指定文档该如何呈现给用户的语言。---为什么使用CSS?1) 避免重复2) 更容易维护3) 为不同的目的,使用不同的样式而内容相同---浏览器展现一个文档必须要把文档内容和相应的样式信息结合起来展示,分为以下两个阶段:1) 浏览器先将HTML和CSS转换成DOM结构。2) 浏览器再把

2017-01-15 20:15:25 1350

原创 浅谈MDN HTML

1、HTML(HyperText Markup Language超文本标记语言)HTML 是一种标记语言。它告诉浏览器如何显示内容。---命名字符参考:用于表示在HTML中具有特定含义的字符。例如,HTML将">"和""符号表达"大于"的含义时,可以使用命名字符参考来作为替代。4个非常重要的常用实体:> 表示大于符号">"< 表示小于符号"<"& 表示和符号"a

2017-01-15 17:04:01 860

原创 浅谈Web建站技术

互联网是指通过TCP/IP协议族互相连接在一起的计算机网络。万维网和互联网是两个联系极其紧密但却不尽相同的概念。Web是运行在互联网上的一个超大规模的分布式系统:(1)通过超文本标记语言(HTML)描述信息资源(2)通过统一资源标识符(URI)定位信息资源(3)通过超文本转移协议(HTTP)请求信息资源。HTML、URL和HTTP三个规范构成了Web的核心体系结构。通俗地说,客

2017-01-15 13:41:10 2711 1

原创 【Leetcode】476. Number Complement

思路:(1)把num转换为二进制数存入bit数组,数组的高位存储二进制的高位,count记录二进制的位数。(2)对count位依次取反,得到二进制形式。(3)从二进制的低位开始依次转换为十进制。public class Solution { public int findComplement(int num) { int[] bit = new int[32

2017-01-15 10:28:06 449

原创 【ife】任务四十五:多功能相册之木桶布局

var imgs = [ {"src": "images/task45_1.jpg", flag: 0}, {"src": "images/task45_2.jpg", flag: 0}, {"src": "images/task45_3.jpg", flag: 0}, {"src": "images/task45_4.jpg", flag: 0}, {"

2017-01-14 18:52:32 847

原创 【ife】任务四十四:多功能相册之瀑布布局

window.onload = function() { fall("myFall", 4, 330, 60); var imgs = document.getElementsByTagName("img"); var bottom = document.getElementById("bottom"); var top = document.getElement

2017-01-14 15:59:52 342

原创 【Leetcode】160. Intersection of Two Linked Lists

思路:(1)可以将两个链表看做两部分:交叉前与交叉后。交叉后的长度是一样的,因此交叉前的长度差即为总长度差N。只要去除这些长度差,距离交叉点就等距了。(2)第一遍循环,找出两个链表的长度差len。(3)第二遍循环,长链表先走len步,然后同时移动,判断是否有相同节点。说明:为了节省计算,在计算链表长度时,顺便比较两个链表的尾节点是否一样,若不一样,则不可能相交,直接可以返回null

2017-01-14 13:26:13 337

原创 浅谈使用CSS遮罩与CSS线性渐变实现图片的斜线拼接

css mask的原理:只会把遮罩图里透明像素所对应的原图部分进行隐藏。#mask { position: absolute; left: 0; top: 0; width: 100%; height: 100%; background: url("images/img2.jpg"); background-size: cover;

2017-01-14 11:20:33 2275

原创 【ife】任务四十三:多功能相册之拼图布局

window.onload = function() { var images = document.getElementsByClassName("images"); var width = parseInt(images[0].style.width); var height = parseInt(images[0].style.height); var img11 = documen

2017-01-14 10:28:49 502

原创 浅谈CSS3新特性——线性渐变linear-gradient

渐变:两种或多种颜色之间的平滑过渡。线性渐变是多种颜色沿渐变线过渡。渐变的实现由两部分组成:渐变线和色标。渐变线用来控制发生渐变的方向;色标包含一个颜色值和一个位置,用来控制渐变的颜色变化。浏览器从每个色标的颜色淡出到下一个,以创建平滑的渐变,通过确定多个色标可以制作多色渐变效果。

2017-01-14 10:25:14 1424

原创 【ife】任务四十二:UI组件之日历组件(三)

var table = document.getElementsByTagName("table")[0];var tds = table.getElementsByTagName("td");var month = document.getElementById("month");var year = document.getElementById("year");var changeD

2017-01-13 17:37:43 425

原创 【ife】任务四十一:UI组件之日历组件(二)

var table = document.getElementsByTagName("table")[0];var tds = table.getElementsByTagName("td");var month = document.getElementById("month");var year = document.getElementById("year");var changeD

2017-01-13 11:49:47 354

原创 【Leetcode】155. Min Stack

思路:(1)相比传统stack,为了记录最小值,需要再开一个最小值栈stackMin。stackMin的栈顶top()始终为当前栈中的最小值。(2)入栈:栈stack每次入栈一个元素,都要和栈stackMin的栈顶元素做比较。如果栈stackMin为空,应把该元素压入栈stackMin;如果入栈元素小于等于栈stackMin栈顶元素,那么该入栈元素就是栈stack当前最小的元素,应把该元素

2017-01-13 11:24:36 258

原创 【ife】任务四十:UI组件之日历组件(一)

var table = document.getElementsByTagName("table")[0];var tds = table.getElementsByTagName("td");window.onload = function() { var month = document.getElementById("month"); var year = document.getE

2017-01-13 10:19:09 641

原创 【ife】任务三十九:UI组件之冻结行列表格

window.onload = function() { var students = []; students[0] = new Student("小明", 80, 90, 70); students[1] = new Student("小红", 90, 60, 90); students[2] = new Student("小亮", 60, 100, 70); students[3]

2017-01-12 17:04:16 501

原创 【ife】任务三十八:UI组件之排序表格

window.onload = function() { var students = []; students[0] = new Student("小明", 80, 90, 70); students[1] = new Student("小红", 90, 60, 90); students[2] = new Student("小亮", 60, 100, 70); createTable

2017-01-12 15:44:37 474

原创 【Leetcode】141. Linked List Cycle

方法一:思路:用Set存放访问过的指针,再次访问同一指针时表示有环。/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * ne

2017-01-12 11:53:13 270

原创 【ife】任务三十七:UI组件之浮出层

window.onload = function() { document.getElementsByTagName("button")[0].onclick = function() { document.getElementById("box").style.left = "50%"; document.getElementById("box").style.top = "50%";

2017-01-11 20:44:19 635

原创 【ife】任务三十六:听指令的小方块(四)

var line = document.getElementById("line");var textarea = document.getElementsByTagName("textarea")[0];var commands = ['BUILD', 'GO', 'TUN LEF', 'TUN RIG', 'TUN BAC', 'TRA LEF','TRA TOP','TRA RIG','

2017-01-11 15:59:17 411

原创 【Leetcode】136. Single Numbers

方法一:思路:用Set存储数组元素,遍历数组,若该元素在Set中已存在,则删除该元素,否则添加该元素。最终剩下的元素就为Single Number。public class Solution { public int singleNumber(int[] nums) { int result = 0; Set set = new HashSet(

2017-01-11 14:46:26 283

原创 【ife】任务三十五:听指令的小方块(三)

var line = document.getElementById("line");var textarea = document.getElementsByTagName("textarea")[0];var commands = ['GO', 'TUN LEF', 'TUN RIG', 'TUN BAC', 'TRA LEF','TRA TOP','TRA RIG','TRA BOT',

2017-01-11 11:20:24 509

原创 【ife】任务三十四:听指令的小方块(二)

document.getElementsByTagName("button")[0].onclick = function() { var value = document.getElementById("command").value; switch(value) { case "GO": go(); break; case "TUN LEF": tun_lef()

2017-01-10 14:23:23 365

原创 【ife】任务三十三:听指令的小方块(一)

document.getElementsByTagName("button")[0].onclick = function() { var value = document.getElementById("command").value; switch(value) { case "GO": go(); break; case "TUN LEF": tun_lef()

2017-01-10 13:31:35 441

空空如也

空空如也

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

TA关注的人

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