![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
菜鸟浪子
这个作者很懒,什么都没留下…
展开
-
Leetcode162:在数组中查找峰值
峰值元素是指其值大于左右相邻值的元素。给定一个输入数组nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设nums[-1] = nums[n] = -∞。示例 1:输入: nums = [1,2,3,1]输出: 2解释: 3 是峰值元素,你的函数应该返回其索引 2。示例2:输入: nums = [1,2,1,3,5,6,4]输出: 1 或 5解释: 你的函数可以...原创 2020-11-12 20:57:34 · 285 阅读 · 0 评论 -
Leetcode160:查找相交链表
160. 相交链表编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,原创 2020-11-12 19:32:06 · 144 阅读 · 0 评论 -
Leetcode81:搜索旋转排序数组中是否存在目标值
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,0,1,2,2,5,6]可能变为[2,5,6,0,0,1,2])。编写一个函数来判断给定的目标值是否存在于数组中。若存在返回true,否则返回false。示例1:输入: nums = [2,5,6,0,0,1,2], target = 0输出: true示例2:输入: nums = [2,5,6,0,0,1,2], target = 3输出: false笨算法:boolsearch(...原创 2020-11-10 16:20:21 · 191 阅读 · 0 评论 -
Leetcode89:根据位数输出格雷编码
格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。即使有多个不同答案,你也只需要返回其中一种。格雷编码序列必须以 0 开头。示例 1:输入:2输出:[0,1,3,2]解释:00 - 001 - 111 - 310 - 2对于给定的n,其格雷编码序列并不唯一。例如,[0,2,3,1]也是一个有效的格雷编码序列。00 - 010 - 211 - 301 - 1示例2:...原创 2020-11-10 15:44:07 · 109 阅读 · 0 评论 -
Leetcode101: 判断二叉树是否镜像对称
给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2/ \ / \3 4 4 3但是下面这个[1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3代码实现:/***Definitionforabinarytreenode.*structTreeNode{*...原创 2020-11-05 20:24:16 · 263 阅读 · 0 评论 -
Leetcode100: 比较两颗树是否相同
给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: 1 1 / \ 2 2...原创 2020-11-04 21:34:26 · 192 阅读 · 0 评论 -
Leetcode152:数组中乘积中最大的子数组
给你一个整数数组nums,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释:子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释:结果不能为 2, 因为 [-2,-1] 不是子数组。代码实现:#defineMAX(A,B)A>B?A:B#defineMIN(A,B)A<B?A:BintmaxProduct...原创 2020-11-04 21:14:44 · 101 阅读 · 0 评论 -
Leetcode459: 判断大串是否为小串的重复
给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例 1:输入: "abab"输出: True解释: 可由子字符串 "ab" 重复两次构成。示例 2:输入: "aba"输出: False算法:boolrepeatedSubstringPattern(char*s){intlen=strlen(s);for(inti=1;i*2<=len;...原创 2020-11-03 17:20:53 · 79 阅读 · 0 评论 -
Leetcode709: 字符串中的大写字母转换成小写字母
实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。示例 1:输入: "Hello"输出: "hello"示例 2:输入: "here"输出: "here"示例3:输入: "LOVELY"输出: "lovely"代码实现:常规做法:char*toLowerCase(char*str){inti=0;while(str[i]!=0)...原创 2020-11-02 19:45:02 · 665 阅读 · 0 评论 -
Leetcode707:设计链表(单链表)
设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val和next。val是当前节点的值,next是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性prev以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第index个节点的值。如果索引无效,则返回-1。addAtHead(val):在链表的第一个元素之前添加一个值为val的节点。插入后,新节点将成为链表的...原创 2020-11-02 19:26:04 · 83 阅读 · 0 评论 -
Leetcode795:求数组中区间子数组个数
给定一个元素都是正整数的数组A,正整数 L以及R(L <= R)。求连续、非空且其中最大元素满足大于等于L小于等于R的子数组个数。例如 :输入:A = [2, 1, 4, 3]L = 2R = 3输出: 3解释: 满足条件的子数组: [2], [2, 1], [3].注意:L, R和A[i] 都是整数,范围在[0, 10^9]。数组A的长度范围在[1, 50000]。解题思路:顺序遍历每一个数,每个数可能会出现以下几种情况:1. 比L小2...原创 2020-10-27 10:55:18 · 651 阅读 · 0 评论 -
Leetcode540:查找有序数组中的单一元素
给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。示例 1:输入: [1,1,2,3,3,4,4,8,8]输出: 2示例 2:输入: [3,3,7,7,10,11,11]输出: 10注意: 您的方案应该在 O(log n)时间复杂度和 O(1)空间复杂度中运行。解题思路二分查找加递归算法如果数组长度为1,则返回唯一的元素,该元素也正是需要查找的元素如果中间元素与两边元素都不等,则该元素也是被查找的元素判断两边剩余元素个数的奇偶性,奇偶性原创 2020-10-26 16:51:48 · 833 阅读 · 0 评论