- 博客(39)
- 收藏
- 关注
原创 【leetcode每日一题】3-存在重复元素(C++)
题目给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true暴力法比较每一个数字与后面的数字是否相等,超时。排序法将数组排序后,比较相邻元素是否相等,时间复杂度O(nlogn)。class
2020-12-03 19:48:09 255 1
原创 【leetcode每日一题】2-剑指 Offer 53 - II. 0~n-1中缺失的数字(C++)
题目一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。示例输入: [0,1,3]输出: 2//输入: [0,1,2,3,4,5,6,7,9]输出: 8思路这里的话因为是二分查找专题,所以一下子就想到可以利用二分查找,找到第一个下标不等于值的数字,即为所求。代码class Solution {public: int missingNumber(vector&l
2020-12-02 20:00:51 330
原创 【leetcode每日一题】1-在排序数组中查找元素的第一个和最后一个位置(C++)
题目给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。进阶:你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗?示例输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]输入:nums = [5,7,7,8,8,10], target = 6输出:[-1,-1]输入:nums = [], target = 0
2020-12-01 20:00:03 395
原创 Python中的for...in...循环 C++也可以方便的使用啦
这是C++11的新增内容,作用和python中的 for in相同,可以说是省去了非常多的麻烦,不用自己再写函数了。python 的实现a=[1,2,3,4,5]for i in a print(i)C++实现范围for语句的语法结构:for(declaration : expression)statement;expression 的表示必须是一个序列,比如用花括号括起来的初始...
2020-04-13 23:20:07 1055 1
原创 零基础入门数据挖掘-二手车交易价格预测(Day4模型融合)
最后的时刻模型融合目标内容介绍Stacking相关理论介绍什么是 stacking如何进行 stackingStacking的方法讲解代码示例回归\分类概率-融合:Tip:此部分为零基础入门数据挖掘的 Task5 模型融合 部分,带你来了解各种模型结果的融合方式,在比赛的攻坚时刻冲刺Top,欢迎大家后续多多交流。模型融合目标对于多种调参完成的模型进行模型融合。完成对于多种模型的融合,提交融...
2020-04-04 19:22:11 503
原创 零基础入门数据挖掘-二手车交易价格预测(Day3建模调参)
目录减少数据在内存中占用的空间线性回归 & 五折交叉验证 & 模拟真实业务情况简单建模五折交叉验证事实上,五折交叉验证在某些与时间相关的数据集上反而反映了不真实的情况绘制学习率曲线与验证曲线嵌入式特征选择 - 大部分情况下都是用嵌入式做特征选择# 我们看下三种模型的效果对比:线性回归; 加入了L1的Lasso回归; 加入了L2的岭回归减少数据在内存中占用的空间def reduc...
2020-04-01 15:34:06 756 1
原创 【leetcode 刷题日记】30-通配符匹配(C++)
通配符匹配题目给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。‘?’ 可以匹配任何单个字符。 ‘*’ 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。示例示例 1:输入: s = “aa”...
2020-03-30 19:04:59 372
原创 【leetcode 刷题日记】29-加油站(C++)
题目在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i]升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。 输入数组均为非空数组,且长度相同。 输入数组中...
2020-03-28 01:15:08 260
原创 零基础入门数据挖掘-二手车交易价格预测(Day2特征工程)
文章内容摘录自atawhale 零基础入门数据挖掘-Task3 特征工程特征工程目标对于特征进行进一步分析,并对于数据进行处理完成对于特征工程的分析,并对于数据进行一些图表或者文字总结并打卡。常见的特征工程异常处理:通过箱线图(或 3-Sigma)分析删除异常值;BOX-COX 转换(处理有偏分布);长尾截断;特征归一化/标准化:标准化(转换为标准正态分布);归一化(抓...
2020-03-28 00:49:50 450
原创 【leetcode 刷题日记】28-跳跃游戏(C++)
跳跃游戏题目给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。示例示例 1:输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3步到达最后一个位置。示例 2:输入: [3,2,1,0,4] 输出: false ...
2020-03-27 19:23:59 204
原创 【leetcode 刷题日记】27-分发饼干(C++)
分发饼干题目假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。注意:你可以假设胃...
2020-03-27 15:00:58 470
原创 【leetcode 刷题日记】26-判断子序列(C++)
判断子序列题目给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度<=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。...
2020-03-26 10:52:33 274
原创 【leetcode 刷题日记】25-买卖股票的最佳时机 II(C++)
买卖股票的最佳时机II题目给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/best-time-to-buy-a...
2020-03-25 15:41:29 109
原创 【leetcode 刷题日记】24-恢复二叉搜索树 II(C++)
恢复二叉搜索树题目二叉搜索树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。示例示例 1:输入: [1,3,null,null,2]1/32输出: [3,1,null,null,2]3/12示例 2:输入: [3,1,4,null,null,2]3/ 1 4/2输出: [2,1,4,null,null,3]2/ 1 ...
2020-03-24 19:25:33 160 1
原创 零基础入门数据挖掘-二手车交易价格预测(Day1数据分析)
零基础入门之数据分析开题语赛题数据字段表评价标准探索性数据分析探索性数据分析的计划基础操作(jupyter notebook环境下)读csv数据输出数据的大小信息浏览数据查看简要信息查看列名数据统计信息浏览查看价格相关性分析结语开题语参加比赛的第一件事不是下数据,跑模型,而是要先静下心来读题,磨刀不误砍柴工。赛题数据赛题以预测二手车的交易价格为任务,该数据来自某交易平台的二手车交易记...
2020-03-24 18:19:03 1903 1
原创 【leetcode 刷题日记】23-不同的二叉搜索树 II(C++)
不同的二叉搜索树 II题目给定一个整数 n,生成所有由 1 … n 为节点所组成的二叉搜索树。示例输入: 3 输出: [ [1,null,3,2], [3,2,null,1], [3,1,null,null,2],[2,1,3], [1,null,2,null,3] ] 解释: 以上的输出对应以下 5 种不同结构的二叉搜索树:略思路我们将i作为根节点,1到i...
2020-03-23 18:56:01 151
原创 【leetcode 刷题日记】22-二叉树的中序遍历(C++)
二叉树的中序遍历递归思路中序遍历/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL...
2020-03-22 14:13:52 254
原创 【leetcode 刷题日记】21-二叉树的最大深度(C++)
二叉树的最大深度题目给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。示例给定二叉树 [3,9,20,null,null,15,7],3/ \9 20/ \15 7返回它的最大深度 3 。递归法把问题化解为求根节点左右子树的最大深度+1,再递归即可。class Solution...
2020-03-21 14:59:02 175
原创 【leetcode 刷题日记】20-对称二叉树(C++)
对称二叉树题目给定一个二叉树,检查它是否是镜像对称的。示例例如,二叉树 [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思路什么是镜像对称的二叉树?如果一个树的...
2020-03-20 22:46:04 189
原创 【leetcode 刷题日记】19-相同的树(C++)
相同的树题目给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例示例 1: 输入:1 1/ \ / 2 3 2 3 [1,2,3], [1,2,3]输出: true 示例 2: 输入:1 1/ 2 ...
2020-03-18 23:19:03 128
原创 【leetcode 刷题日记】18-正则表达式匹配(C++)
正则表达式匹配实在是没时间今天,日后补上!class Solution {public: bool isMatch(string s, string p) { return regex_match(s, regex(p)); }};调库是真的强哈哈,改天一定补上补上...
2020-03-18 17:26:43 168
原创 【leetcode 刷题日记】17-最长回文子串(C++)
最长回文子串题目给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例示例 1:输入: “babad” 输出: “bab” 注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd” 输出: “bb”思路首先明确何为回文串?即正着读和反着读都一样的串。中心扩展算法我们观察到回文中心的两侧互为镜像。因此,回文可以从它...
2020-03-17 15:10:54 145
原创 【leetcode 刷题日记】16-无重复字符的最长字串(C++)
无重复字符的最长字串题目给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例示例 1:输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew” 输出: 3 解释: ...
2020-03-16 17:01:00 146
原创 【leetcode 刷题日记】15-有效的括号(C++时间和内存都击败100%)
有效的括号题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例示例 1:输入: “()” 输出: true示例 2:输入: “()[]{}” 输出: true示例 3:输入: “(]” 输出: fals...
2020-03-14 22:20:02 99
原创 【leetcode 刷题日记】14-最长公共前缀(C++)
最长公共前缀题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例示例 1:输入: [“flower”,“flow”,“flight”] 输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”] 输出: “” 解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。思路首先遍历数组找到最短的...
2020-03-14 21:56:03 387 1
原创 【leetcode 刷题日记】13-罗马数字转整数(C++)
罗马数字转整数题目罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II...
2020-03-13 18:32:14 87
原创 【leetcode 刷题日记】12-合并K个有序链表(C++)
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* me...
2020-03-12 22:11:24 132
原创 【leetcode 刷题日记】11-删除链表的倒数第N个节点(C++)
删除链表的倒数第N个节点题目给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.思路删除倒数第n个结点相当于删除正数第L-n-1个数,其中L是链表的长度。那么遍历链表拿到链表的长度,跳过第L-n-1...
2020-03-11 14:12:56 210
原创 【leetcode 刷题日记】10-两数之和(C++)
两数之和(链表)题目给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 ...
2020-03-10 20:46:56 125
原创 VS一行代码解决C++错误代码4096
严重性 代码 说明 项目 文件 行 禁止显示状态错误 C4996 ‘strcpy’: This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details....
2020-03-09 21:19:43 2509
原创 【leetcode 刷题日记】09-环形链表(C++快慢指针)
141.环形链表题目给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。这里的pos和解题没啥关系,是leetcode测试用的。示例示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二...
2020-03-09 16:24:04 194
原创 【leetcode 刷题日记】08-删除排序链表中的重复元素(C++)
删除排序链表中的重复元素题目给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3思路这道题的难度比较简单,考察的是链表操作。思路就是定义一个指针ptr,和后一个元素比较,如果相同就跳过,不...
2020-03-08 18:40:34 444
原创 【leetcode 刷题日记】07-合并两个有序链表(C++)
合并两个有序链表题目将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路创建一个虚拟头节点,用指针cur指向头节点,然后和l1、l2比较,cur->next指向其中较小的一个。/** * D...
2020-03-07 16:09:23 1260
原创 【leetcode 刷题日记】06-买卖股票的最佳时机
买卖股票的最佳时机题目给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [3,3,5,0,0,3,1,4]输出: 6解释: 在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出...
2020-03-06 16:28:12 442
原创 【leetcode 刷题日记】05-最接近的三数之和
最接近的三数之和题目链接最接近的三数之和思路题目和三数之和很相似,不同的是找三数之和最小的数,不一定是0,但是找到0了可以直接返回,还是可以使用双指针,在数组排序过后,利用左右指针来计算三数之和,和设定的ans值做比较来决定左移还是右移。利用sort对数组进行排序在for循环中用i遍历数组左指针=i+1,右指针为size(nums)-1;定义sum=nums[i]+nums[L]+...
2020-03-05 20:18:59 142
原创 【leetcode 刷题日记】04-三数之和
三数之和题目链接三数之和两数之和思路这道题我们先想两数之和怎么做呢?两数相加等于0,两重for循环暴力解答。怎么样可以更快一点呢?可以用哈希把时间复杂度从O(n^2)转为O(n)。先把每个元素想要的target值存入哈希表中,复杂度为O(n),再用一个O(n)的时间复杂度从哈希表中查找即可。三数之和思路还是运用双指针的思想,这回不是快慢指针的思想了。首先考虑数组长度小于3的,直接返回...
2020-03-04 19:28:13 150
原创 【leetcode 刷题日记】03-移除元素
移除元素题目就不叙述了,粘贴一直出错…这道题看上去和删除重复元素很像,然后一开始我也在想能不能用相同的双指针思想来做,但是发现自己还是写不出来。于是用的map去重以后再赋回原数组的方法,这个我没有提交哈哈因为感觉题目要求的是原地,应该没办法通过。看了题解,确实是用的双指针的思想,今天通过这道题算是理解了快、慢指针是什么意思了。快指针遍历数组,慢指针把不等于val的值保存下来。看了两次双指...
2020-03-03 19:30:43 187
原创 【leetcode 刷题日记】02-删除排序数组中的重复项
删除排序数组中的重复项题目给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。...
2020-03-02 19:28:00 134
原创 【leetcode 刷题日记】01-两数之和
两数之和题目给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]我用的是...
2020-03-01 16:03:02 191
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人