LeetCode
guojunfengcode
这个作者很懒,什么都没留下…
展开
-
LeetCode:剑指 Offer 18. 删除链表的节点
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。注意:此题对比原题有改动示例 1:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5,1,9], val = 1输出: [4,5,9]解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链原创 2020-11-11 11:15:07 · 116 阅读 · 0 评论 -
LeetCode:剑指 Offer 17. 打印从1到最大的n位数
输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。示例 1:输入: n = 1输出: [1,2,3,4,5,6,7,8,9]说明:用返回一个整数列表来代替打印n 为正整数题解:利用幂函数pow取得最大值,再循环放入容器中class Solution {public: vector<int> printNumbers(int n) { vector<int> res原创 2020-11-11 11:10:01 · 123 阅读 · 0 评论 -
LeetCode:剑指 Offer 16. 数值的整数次方
实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25题解:判断n的二进制的最后一位是否1 如果n & 1 != 0 也就是b原创 2020-11-11 11:05:02 · 112 阅读 · 0 评论 -
LeetCode:剑指 Offer 15. 二进制中1的个数
请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 ‘1’。示例 2:输入:00000000000000000000000010000000输出:1解释:输入的二进制串 0000000000000原创 2020-11-11 10:25:06 · 88 阅读 · 0 评论 -
LeetCode:剑指 Offer 11. 旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0题解:这是个排序好的数组旋转,遍历数组对比下一个小的话,就是该数组最小值class Solution {public: int minArray(vector<int原创 2020-11-11 10:13:57 · 75 阅读 · 0 评论 -
LeetCode:剑指 Offer 09. 用两个栈实现队列
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:[“CQueue”,“deleteHead”,“appendTail”,“ap原创 2020-11-10 18:29:16 · 197 阅读 · 0 评论 -
LeetCode:剑指 Offer 06. 从尾到头打印链表
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]题解:遍历节点,push到容器中,再反向迭代器构造临时对象返回/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }原创 2020-11-10 18:03:37 · 64 阅读 · 0 评论 -
LeetCode:剑指 Offer 05. 替换空格
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”题解:先遍历计算空格个数,再重置大小,避免内存访问越界。倒叙遍历,不是空格赋值到当前下标加当前空格2。碰到空格,空格个数-1,下标加上前空格2赋值%20We are happyWe are happy0000 (0000是重置后的,用0来表示比较直观)We are happhappy(后序遍历到第一个空格前,赋值到后面的空间)We原创 2020-11-10 17:38:01 · 86 阅读 · 0 评论 -
LeetCode:剑指 Offer 03. 数组中重复的数字
找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3题目原地址链接题解:既然找出任意一个重复的就可以。vector先排序,找出第一个重复的即可,简单暴力,时间复杂度O(n)class Solution {public: int findRepeatNum原创 2020-11-10 17:03:16 · 74 阅读 · 0 评论