随笔分类 -  LeetCode

刷题
摘要:func maxProfit(prices []int) int { var max = 0 for i:=1;i<len(prices);i++{ if prices[i]>prices[i-1]{//只要后一天比前一天有利可图 max += prices[i]-prices[i-1]//就在前一 阅读全文
posted @ 2021-04-09 14:11 pangqianjin 阅读(34) 评论(0) 推荐(0) 编辑
摘要:动态规划+sort.SearchInts() func lengthOfLIS(nums []int) int { dp := []int{} for _, num := range nums { i := sort.SearchInts(dp, num) //min_index if i == l 阅读全文
posted @ 2021-04-09 13:57 pangqianjin 阅读(123) 评论(0) 推荐(0) 编辑
摘要:直接遍历链表,使用set做标记位(标记是否已经到达过) /** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ type void struct{} fun 阅读全文
posted @ 2021-04-09 12:28 pangqianjin 阅读(61) 评论(0) 推荐(0) 编辑
摘要:使用切片slice实现 type MinStack struct { stack []int minIndex int length int } /** initialize your data structure here. */ func Constructor() MinStack { ret 阅读全文
posted @ 2021-04-09 10:19 pangqianjin 阅读(31) 评论(0) 推荐(0) 编辑
摘要:func maxProfit(prices []int) int { // 最大利润=第i天卖出-最小买入 var min_input = prices[0]//默认第0天为最小买入 var max_profit = 0//最大利润 for i:=1;i<len(prices);i++{ min_i 阅读全文
posted @ 2021-04-09 08:29 pangqianjin 阅读(35) 评论(0) 推荐(0) 编辑
摘要:/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ var res [][]int func levelOrder( 阅读全文
posted @ 2021-04-08 23:01 pangqianjin 阅读(34) 评论(0) 推荐(0) 编辑
摘要:func addStrings(num1 string, num2 string) string { add := 0 //进位标志 ans := ""//最终字符串 var i = len(num1)-1//从末尾开始 var j = len(num2)-1//从末尾开始 for i >= 0 | 阅读全文
posted @ 2021-04-08 21:51 pangqianjin 阅读(84) 评论(0) 推荐(0) 编辑
摘要:func maxSubArray(nums []int) int { var res = nums[0] // 默认第一个是最大和 var sum = 0 // sum为nums[i]前面的元素的最大和 for i:=0;i<len(nums);i++{ sum = max(sum + nums[i 阅读全文
posted @ 2021-04-08 21:02 pangqianjin 阅读(35) 评论(0) 推荐(0) 编辑
摘要:func sortArray(nums []int) []int { quickSort(nums, 0, len(nums)-1) return nums } func quickSort(nums []int, low, high int){ if low<high{ var pivot = p 阅读全文
posted @ 2021-04-08 19:21 pangqianjin 阅读(67) 评论(0) 推荐(0) 编辑
摘要:func lengthOfLongestSubstring(s string)int{ var length = 0 var max = 0 var start = 0//慢指针 var end = 0//快指针 for end<len(s){ tmpChar:=s[end] for i:=star 阅读全文
posted @ 2021-04-08 17:52 pangqianjin 阅读(32) 评论(0) 推荐(0) 编辑
摘要:一般思路 先遍历A链表,记录所有点 再遍历B链表,若已经在记录中存在则返回该节点. /** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ type voi 阅读全文
posted @ 2021-04-08 15:12 pangqianjin 阅读(95) 评论(0) 推荐(0) 编辑
摘要:/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ func mergeTwoLists(l1 *ListNode, l2 *ListNode) *Li 阅读全文
posted @ 2021-04-08 14:33 pangqianjin 阅读(102) 评论(0) 推荐(0) 编辑
摘要:给定一些正数(代表长度)组成的数组arr,返回由其中三个 长度组成的面积不为0的三角形的最大周长。 如果不能组成三角形,返回0. 三角形满足条件:a+b>c且a+c>b且b+c>a 贪心算法 先排序(升序) 从后往前选三个数,看是否满足三角形条件 package main import ( "fmt 阅读全文
posted @ 2021-04-08 12:39 pangqianjin 阅读(209) 评论(0) 推荐(0) 编辑
摘要:在柠檬水摊上,每一杯柠檬水的售价为5美元。 顾客排队购买,一次购买一杯。 每一个顾客只买一杯柠檬水,然后向你付5美元、10美元或20美元。 必须给每个顾客正确找零。 **注意:**一开始你手头并没有任何零钱。 如果你能给每位顾客正确找零,则返回true,否则返回false。 贪心算法 顾客给你5块, 阅读全文
posted @ 2021-04-08 12:27 pangqianjin 阅读(150) 评论(0) 推荐(0) 编辑
摘要:给定一个未经排序的整数数组,找到最长且连续递增的子序列,并返回该序列的长度。 如: [1,2,3,2,3,4,3,4,5,6,7] 返回5. 贪心算法 func findLength(nums []int)int{ var start = 0 var maxLength = 0 for i:=1;i 阅读全文
posted @ 2021-04-08 12:10 pangqianjin 阅读(191) 评论(0) 推荐(0) 编辑
摘要:给定一个二叉树,找出其最小深度。 最小深度是从根节点到叶子节点经过的最短路径上的节点数量。 如: 则返回3. 广度优先 func minDepth2(root *TreeNode)int{ if root==nil{//第一次进入时根节点的判断 return 0 } root.deep = 1 va 阅读全文
posted @ 2021-04-08 11:41 pangqianjin 阅读(130) 评论(0) 推荐(0) 编辑
摘要:给定一个二叉树,找出其最小深度。 最小深度是从根节点到叶子节点经过的最短路径上的节点数量。 如: 则返回3. 深度优先 package main import ( "fmt" "math" ) type TreeNode struct{ val int left *TreeNode right *T 阅读全文
posted @ 2021-04-08 10:53 pangqianjin 阅读(115) 评论(0) 推荐(0) 编辑
摘要:给定一个整数数组,找出平均数最大且长度为K的下标连续的子数组, 并输出该平均数。 如[1,12,-5,-6,50,3], k=4 返回 12.75 滑动窗口 func findMaxAverage(nums []int, k int)float64{ var sum = 0 var n = len( 阅读全文
posted @ 2021-04-08 10:27 pangqianjin 阅读(147) 评论(0) 推荐(0) 编辑
摘要:两个有序数组nums1和nums2,将nums2合并到nums1中,使nums1成为一个有序数组。 初始化nums1和nums2的元素数量分别为m和n。 假设nums1的空间大小等于m+n(足够)。 一般解法,先拷贝,再排序 package main import ( "fmt" "sort" ) 阅读全文
posted @ 2021-04-08 09:50 pangqianjin 阅读(281) 评论(0) 推荐(0) 编辑
摘要:给定一个链表,判断链表中是否有环。 如果链表中存在某个节点,可以通过连续跟踪next指针再次到达该节点,则链表中存在环。 如果链表中存在环,则返回true,否则返回false。 直接遍历链表,使用set做标记位(标记是否已经到达过) package main import ( "fmt" ) typ 阅读全文
posted @ 2021-04-07 22:23 pangqianjin 阅读(143) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示