- 博客(20)
- 收藏
- 关注
原创 力扣 || 101.对称二叉树--Golang
知识点:树难度:简单题目:给定一个二叉树,检查它是否是镜像对称的。示例:方法一:递归如果一个树的左子树与右子树镜像对称,那么这个树是对称的。因此,该问题可以转化为:两个树在什么情况下互为镜像?如果同时满足下面的条件,两个树互为镜像:1.它们的两个根结点具有相同的值。2.每个树的右子树都与另一个树的左子树镜像对称。就像人站在镜子前审视自己那样。镜中的反射与现实中的人具有相...
2020-03-20 23:07:55 313
原创 力扣 || 100.相同的树--Golang
知识点:树难度:简单题目:给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例:方法:递归Golang:/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode ...
2020-03-19 22:58:23 187
原创 力扣 || 10.正则表达式--Golang
解题方法: 自上而下 存储计算结果当p为空时,此时若s为空,返回true,若s不为空,说明不匹配,返回false当p只有1个字符时:2.1 s为空,不匹配返回false2.2 s不为空,满足s的第一个字符和p的第一个字符匹配,或者p的第一个字符为’.’。则s和p都往后移动一个字符,看看后面是否匹配。2.3 如果s不为空,且不满足2.2的条件,说明不匹配,返回false当p的字符数大于两...
2020-03-18 23:32:02 256
原创 力扣 || 5.最长回文子串--Golang
方法:中心扩展法中心扩展法,子串分为奇数和偶数,要分开进行讨论,选择一个中心位置,逐渐比较两边的值,因为求最长,免不了比较max,因此,每次求出最长子串需要和之前的比较,然后重新记录下标,偶数时类似,需要注意的时,中心位置应该保持不变在一次循环中,i和j的其实位置奇数和偶数应该是相同的。Golang:func longestPalindrome(s string) string { // ...
2020-03-17 23:24:23 311
原创 力扣 || 3.无重复字符的最长子串--Golang
func lengthOfLongestSubstring(s string) int { lft := 0 // left bound max := 0 k := [256]int{} // char -> last appear index after inserting into the window for rgt:=0; rgt<len(s); rgt++{ i...
2020-03-16 23:26:37 199
原创 力扣 || 20.有效的括号--Goalng
知识点:字符串难度:简单题目:给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例:方法:栈初始化栈 S。一次处理表达式的每个括号。如果遇到开括号,我们只需将其推到栈上即可。这意味着我们将稍后处理它,让我们简...
2020-03-15 23:43:47 140
原创 力扣 || 14.最长公共前缀--Golang
知识点:字符串难度:简单题目:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例:示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。方法:循环比较Golang:func longestCo...
2020-03-14 23:05:13 187
原创 力扣 || 13.罗马数字转整数--Golang
知识点:字符串难度:简单题目:示例:方法:利用字典的方法Golang:func romanToInt(s string) int { //特殊罗马数字 specialRomanStringMap := map[string]int{"IV": 4, "IX": 9, "XL": 40, "XC": 90, "CD": 400, "CM": 900} //正常...
2020-03-13 23:18:57 204
原创 力扣 || 23.合并K个排序链表--Golang
知识点:链表难度:困难题目:合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6方法:分治Golang:/** * Definition for singl...
2020-03-12 22:21:26 415
原创 力扣 || 19.删除链表的倒数第n个节点--Golang
知识点:链表难度:中等题目:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.方法一:两次遍历法第一次遍历整个链表,得出链表的长度L。第二次遍历,到L-n+1为止,删掉这个节点即可。方法二:一次遍历...
2020-03-11 23:11:33 203
原创 力扣 || 2.两数相加--Golang
知识点:链表难度:中等题目:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出...
2020-03-10 22:45:37 205
原创 力扣 || 141.环形链表--Golang
知识点:链表难度:简单题目:给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例:方法:双指针法Golang:/** * Definition for singly-linked list. * type ListNode struct { * ...
2020-03-09 21:48:21 201
原创 力扣 || 83.删除排序链表中的重复元素--Golang
知识点:链表难度:简单题目:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例:方法:引入一个新指针Golang:/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func deleteDu...
2020-03-08 21:09:32 128
原创 力扣 ||合并两个有序链表--Golang
知识点:链表难度:简单题目:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4方法:建立第三个链表Golang:package mainfunc mergeTwoLists(l1 *ListNod...
2020-03-07 21:23:36 183
原创 力扣 || 买卖股票的最佳时机III--Golang
知识点:数组难度:困难题目:给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例:暂未搞懂,先贴出网上实现:方法:贪心算法Golang:func maxProfit(prices []int) int { dpi10:...
2020-03-06 22:10:32 189
原创 力扣 || 16.最接近的三数之和--Golang
知识点:数组难度:中等题目:方法:双指针法Golang实现//与三数之和问题类似//不同这处在于将定值换为不定值func threeSumClosest(nums []int, target int) int { sort.Ints(nums) result := nums[0] + nums[1] + nums[2] for i := 0; i < len(...
2020-03-05 22:06:39 317
原创 力扣 || 15.三数之和--Golang
知识点:数组难度:中等题目:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]...
2020-03-04 21:56:23 212 1
原创 力扣||27.删除元素--Golang
知识点:数组难度:简单题目:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例:**方法:**遇到相等的数组元素时,删除即可Golang实现:func removeE...
2020-03-03 22:22:19 376
原创 力扣||26.删除排序数组中的重复项--Golang
力扣||26.删除排序数组中的重复项–Golang知识点:数组难度:简单题目:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例:示例1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元...
2020-03-02 22:17:56 212
原创 力扣||1.两数之和--Golang
力扣||1.两数之和–Golang知识点:数组难度:简单题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] =...
2020-03-01 21:27:07 296
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人