LeetCode
程の编程日记
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 39. 数组中出现次数超过一半的数字
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2限制:1 <= 数组长度 <= 50000这道题…第一想法map,直接存map里面然后取出最大的value,然后取出对应的key值,磕磕绊绊算是过去了!上代码:class Solution { public int majorityElement(int[] nums) {原创 2020-08-10 17:57:19 · 539 阅读 · 0 评论 -
看到链表相关题,要想想双指针,要画图(LeetCode)
剑指 Offer 24. 反转链表定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL限制:0 <= 节点个数 <= 5000两个指针,一个存当前的cur,一个存之后的pre,往后移动,改变pre的指针,指向前面的cur即可,要预先存储一份pre之后的指针。具体看代码:class ListNode {原创 2020-08-04 22:53:10 · 277 阅读 · 0 评论 -
又是一道没看题解写出来的题,快慢指针也太神奇了(LeetCode)
剑指 Offer 22. 链表中倒数第k个节点输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.这道题用快慢指针做即可,一个快的指针先走k步,然后再和慢的指针一起走,这样两个指针刚好相隔k个,快指针走原创 2020-08-02 22:22:55 · 315 阅读 · 0 评论 -
记录一下刷LeetCode瞬间有思路的一道简单题——剑指 Offer 09. 用两个栈实现队列
刷题这些天,每天都靠看题解过日子,今天又随机了一道题,用两个栈实现队列,看题目感觉挺不错的,但是看输入输出的样例突然就懵了,我感觉这道题可能就是题目看着比较麻烦其实做起来不麻烦,下面是题:题目链接:用两个栈实现队列用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“d原创 2020-07-15 21:06:05 · 133 阅读 · 0 评论