自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

努力奋斗啊

观他人之长,四海皆为吾师

  • 博客(173)
  • 收藏
  • 关注

原创 Python数据可视化—seaborn简介和实例

这里实例采用的数据集都是seaborn提供的几个经典数据集,dataset文件可见于Github。1  set_style( ) 设置主题Seaborn有五个预设好的主题: darkgrid , whitegrid , dark , white ,和 ticks  默认: darkgridimport matplotlib.pyplot as pltimport seaborn as

2016-12-23 21:43:54 117231 5

原创 Python数据可视化—matplotlib笔记

在参加数据挖掘竞赛中,经常需要对数据进行可视化。今天有空就对数据可视化— matplotlib这块内容系统的整理下,方便查找使用。本文来自于对《利用python进行数据分析》以及网上一些博客的总结。1  matplotlib简介matplotlib是Pythom可视化程序库的泰斗,经过几十年它仍然是Python使用者最常用的画图库。有许多别的程序库都是建立在它的基础上或直接调用它,

2016-12-22 18:49:40 6061

原创 xgboost特征选择

Xgboost在各大数据挖掘比赛中是一个大杀器,往往可以取得比其他各种机器学习算法更好的效果。数据预处理,特征工程,调参对Xgboost的效果有着非常重要的影响。这里介绍一下运用xgboost的特征选择,运用xgboost的特征选择可以筛选出更加有效的特征代入Xgboost模型。这里采用的数据集来自于Kaggle | Allstate Claims Severity比赛,这里的训练集如

2016-11-27 11:22:05 45102 10

原创 [Python] Python基础笔记

1.Python是一种解释型语言.Python解释器是通过“一次执行一条语句”的方式运行程序的。Python科学计算程序员则更趋向于使用IPython(一种加强的交互式Python解释器)。通过使用命令%run,IPython会在同一个进程中执行指定文件中的代码。(.py文件和IPython解释器在同一目录下,或者运行时加上文件路径)%run hello_world.py #out: He

2016-11-14 13:46:11 914

原创 [Leetcode] 343. 整数拆分

343. 整数拆分难度中等833给定一个正整数n,将其拆分为 k 个 正整数 的和(k >= 2),并使这些整数的乘积最大化。返回 你可以获得的最大乘积。示例 1:输入: n = 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例2:输入: n = 10输出: 36解释: 10 = 3 + 3 + 4, 3 ×3 ×4 = 36。class Solution { public int integerBreak(int n)...

2022-05-29 16:36:51 144

原创 [Leetcode] 373. 查找和最小的 K 对数字

373. 查找和最小的 K 对数字给定两个以 升序排列 的整数数组 nums1 和 nums2,以及一个整数 k。定义一对值(u,v),其中第一个元素来自nums1,第二个元素来自 nums2。请找到和最小的 k个数对(u1,v1), (u2,v2) ... (uk,vk)。示例 1:输入: nums1 = [1,7,11], nums2 = [2,4,6], k = 3输出: [1,2],[1,4],[1,6]解释: 返回序列中的前 3 对数: [...

2022-05-28 20:47:21 143

原创 [Leetcode] 76. 最小覆盖子串

给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。注意:对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。如果 s 中存在这样的子串,我们保证它是唯一的答案。示例 1:输入:s = "ADOBECODEBANC", t = "ABC"输出:"BANC"示例 2:输入:s = "a", t = "a"输出:"a"class Solution .

2022-05-17 23:44:16 164

原创 [Leetcode] N皇后 I & II

51. N 皇后class Solution { public List<List<String>> solveNQueens(int n) { List<List<String>> solutions = new ArrayList<List<String>>(); int[] queens = new int[n]; Arrays.fill(queens, -1);

2022-05-15 20:29:28 89

原创 [Leetcode] 378. 有序矩阵中第 K 小的元素

给你一个n x n矩阵matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。请注意,它是 排序后 的第 k 小元素,而不是第 k 个 不同 的元素。你必须找到一个内存复杂度优于O(n2) 的解决方案。示例 1:输入:matrix = [[1,5,9],[10,11,13],[12,13,15]], k = 8输出:13解释:矩阵中的元素为 [1,5,9,10,11,12,13,13,15],第 8 小元素是 13示例 2:输入:matrix = [[-5...

2022-05-15 20:27:13 62

原创 [Leetcode] 动态规划类java题解

139. 单词拆分public class WordBreak { public boolean wordBreak(String s, List<String> wordDict) { Set<String> wordSet = new HashSet<String>(wordDict); boolean[] dp = new boolean[s.length() + 1]; //Boolean会抛空指针

2022-05-04 14:34:09 634

原创 [Leetcode] BFS/DFS类java题解记录

130. 被围绕的区域class Solution { public int rows,cols; public void solve(char[][] board) { rows = board.length; cols = board[0].length; for(int i = 0;i<rows;i++){ for(int j = 0;j<cols;j++){

2022-05-04 14:04:50 623

原创 [Leetcode] 739. 每日温度

给定一个整数数组temperatures,表示每天的温度,返回一个数组answer,其中answer[i]是指在第 i 天之后,才会有更高的温度。如果气温在这之后都不会升高,请在该位置用0 来代替。示例 1:输入: temperatures = [73,74,75,71,69,72,76,73]输出:[1,1,4,2,1,1,0,0]示例 2:输入: temperatures = [30,40,50,60]输出:[1,1,1,0]示例 3:输入: tempera...

2022-04-23 21:53:08 76

原创 [Leetcode] 438. 找到字符串中所有字母异位词

给定两个字符串s和 p,找到s中所有p的异位词的子串,返回这些子串的起始索引。不考虑答案输出的顺序。异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。示例1:输入: s = "cbaebabacd", p = "abc"输出: [0,6]解释:起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词。起始索引等于 6 的子串是 "bac", 它是 "abc" 的异位词。示例 2:输入: s = "abab", p = "ab"输出: ...

2022-04-23 21:17:42 85

原创 [Leetcode] 91. 解码方法

一条包含字母A-Z 的消息通过以下映射进行了 编码 :'A' -> "1"'B' -> "2"...'Z' -> "26"要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,"11106" 可以映射为:"AAJF" ,将消息分组为 (1 1 10 6)"KJF" ,将消息分组为 (11 10 6)注意,消息不能分组为(1 11 06) ,因为 "06" 不能映射为 "F" ,这是由于 "6" 和 "06" 在映射中并不等...

2022-04-23 20:36:30 93

原创 [Leetcode] 字符串运算题

415. 字符串相加给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。示例 1:输入:num1 = "11", num2 = "123"输出:"134"示例 2:输入:num1 = "456", num2 = "77"输出:"533"示例 3:输入:num1 = "0", num2 = "0"输出:"0"提示:1.

2022-04-23 19:39:02 184

原创 [Leetcode] 102-200部分java题解记录

102. 二叉树的层序遍历class Solution { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> res = new ArrayList<>(); if(root == null){ return res; } LinkedList&lt

2022-04-19 20:55:22 336

原创 [Leetcode] 1-100部分java题解记录

1. 两数之和class Solution { public int[] twoSum(int[] nums, int target) { int[] numsCopy = nums.clone(); Arrays.sort(numsCopy); int i = 0, j = nums.length - 1; while (i < j) { if (numsCopy[i] + numsCopy[j]

2022-04-16 17:50:33 995

原创 [Leetcode] 451. 根据字符出现频率排序

给定一个字符串 s ,根据字符出现的 频率 对其进行 降序排序 。一个字符出现的 频率 是它出现在字符串中的次数。返回 已排序的字符串。如果有多个答案,返回其中任何一个。示例 1:输入: s = "tree"输出: "eert"解释: 'e'出现两次,'r'和't'都只出现一次。因此'e'必须出现在'r'和't'之前。此外,"eetr"也是一个有效的答案。示例 2:输入: s = "cccaaa"输出: "cccaaa"解释: 'c'和'a'都出现三次。此外,"aaaccc.

2022-04-09 16:59:16 117

原创 [Leetcode] Hash表+排序

给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]提示:1 <= nums.length <= 105k 的取值范围是 [1, 数组中不相同的元素的个数]题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的code:c.

2022-04-09 16:53:30 182

原创 [Leetcode] 数组题汇总

152. 乘积最大子数组public class MaxProduct152 { public int maxProduct(int[] nums) { int n = nums.length; int[] dp = new int[n]; dp[0]=nums[0]; int result = nums[0], nmax = nums[0], nmin = nums[0]; for(int i = 1;i&l

2022-04-08 19:24:16 264

原创 [Leetcode] 前缀和汇总

针对连续子数组和相关问题 一般采用前缀和 + hashmap是K的倍数 采取同余定理相关题目:523. 连续的子数组和 public class CheckSubarraySum { // 前缀和 + 同余定理 + hashmap public boolean checkSubarraySum(int[] nums, int k) { int m = nums.length; if (m < 2) { re

2022-04-08 16:30:08 799

原创 [Leetcode]477. 汉明距离总和

两个整数的汉明距离 指的是这两个数字的二进制数对应位不同的数量。给你一个整数数组 nums,请你计算并返回 nums 中任意两个数之间 汉明距离的总和 。示例 1:输入:nums = [4,14,2]输出:6解释:在二进制表示中,4 表示为 0100 ,14 表示为 1110 ,2表示为 0010 。(这样表示是为了体现后四位之间关系)所以答案为:HammingDistance(4, 14) + HammingDistance(4, 2) + HammingDistance(14, 2.

2022-04-08 14:43:57 100

原创 [Leetcode]486. 预测赢家

给你一个整数数组 nums 。玩家 1 和玩家 2 基于这个数组设计了一个游戏。玩家 1 和玩家 2 轮流进行自己的回合,玩家 1 先手。开始时,两个玩家的初始分值都是 0 。每一回合,玩家从数组的任意一端取一个数字(即,nums[0] 或 nums[nums.length - 1]),取到的数字将会从数组中移除(数组长度减 1 )。玩家选中的数字将会加到他的得分上。当数组中没有剩余数字可取时,游戏结束。如果玩家 1 能成为赢家,返回 true 。如果两个玩家得分相等,同样认为玩家 1 是游戏的赢家

2022-04-08 14:34:03 113

原创 [Leetcode]738. 单调递增的数字

当且仅当每个相邻位数上的数字x和y满足x <= y时,我们称这个整数是单调递增的。给定一个整数 n ,返回 小于或等于 n 的最大数字,且数字呈 单调递增 。示例 1:输入: n = 10输出: 9示例 2:输入: n = 1234输出: 1234示例 3:输入: n = 332输出: 299code:public class MonotoneIncreasingDigits { // 738. 单调递增的数字 public...

2022-04-08 14:11:41 191

原创 [Leetcode]135. 分发糖果

n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。你需要按照以下要求,给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目 。示例 1:输入:ratings = [1,0,2]输出:5解释:你可以分别给第一个、第二个、第三个孩子分发 2、1、2 颗糖果。示例2:输入:ratings = [1,2,2]输出:4解释:你可以分别给第一个、第二个、第三个.

2022-04-07 22:55:02 54

原创 [Leetcode] 207 & 210 课程表

你这个学期必须选修 numCourses 门课程,记为0到numCourses - 1 。在选修某些课程之前需要一些先修课程。 先修课程按数组prerequisites 给出,其中prerequisites[i] = [ai, bi] ,表示如果要学习课程ai 则 必须 先学习课程bi 。例如,先修课程对[0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1 。请你判断是否可能完成所有课程的学习?如果可以,返回 true ;否则,返回 false 。code:pu...

2022-04-06 17:49:22 161

原创 [Leetcode]79. 单词搜索

给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例 1:输入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCCED"输出:true示

2022-04-06 16:34:17 58

原创 [Leetcode]329. 矩阵中的最长递增路径

给定一个m x n 整数矩阵matrix ,找出其中 最长递增路径 的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你 不能 在 对角线 方向上移动或移动到 边界外(即不允许环绕)。示例 1:输入:matrix = [[9,9,4],[6,6,8],[2,1,1]]输出:4解释:最长递增路径为[1, 2, 6, 9]。示例 2:输入:matrix = [[3,4,5],[3,2,6],[2,2,1]]输出:4解释:最长递增路径是[3, 4,...

2022-04-06 15:55:24 126

原创 [面试算法]基础算法java版

二分查找public int search(int[] nums, int target) { int low = 0, high = nums.length - 1; while (low <= high) { int mid = (high - low) / 2 + low; int num = nums[mid]; if (num == target) { return mid; } e

2022-04-06 12:34:12 593

原创 [Leetcode]剑指 Offer 45. 把数组排成最小的数

输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。示例 1:输入: [10,2]输出: "102"示例2:输入: [3,30,34,5,9]输出: "3033459"提示:0 < nums.length <= 100code:public class MinNumber { // 剑指 Offer 45. 把数组排成最小的数 public String minNumber(int[] nums).

2022-04-06 11:21:15 69

原创 [Leetcode] 树相关汇总java

输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A:3/ \4 5/ \1 2给定的树 B:4/1返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。示例 1:输入:A = [1,2,3], B = [3,1]输出:false示例 2:输入:A = [3,4,5,1,2], B = [4,...

2022-04-06 10:42:32 60

原创 [Leetcode]617. 合并二叉树

给你两棵二叉树: root1 和 root2 。想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 null 的节点将直接作为新二叉树的节点。返回合并后的二叉树。注意: 合并过程必须从两个树的根节点开始。示例 1:输入:root1 = [1,3,2,5], root2 = [2,1,3,null,4,null,7]输

2022-04-05 20:31:25 70

原创 [Leetcode]673. 最长递增子序列的个数

给定一个未排序的整数数组nums,返回最长递增子序列的个数。注意这个数列必须是 严格 递增的。示例 1:输入: [1,3,5,4,7]输出: 2解释: 有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, 5, 7]。示例 2:输入: [2,2,2,2,2]输出: 5解释: 最长递增子序列的长度是1,并且存在5个子序列的长度为1,因此输出5。提示:1 <= nums.length <= 2000-106<= num...

2022-04-05 20:09:54 314

原创 [Leetcode] 547. 省份数量

有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。返回矩阵中 省份 的数量。示例 1:提示:1

2022-04-05 17:57:55 74

原创 [Leetcode]402. 移掉 K 位数字

给你一个以字符串表示的非负整数num 和一个整数 k ,移除这个数中的 k 位数字,使得剩下的数字最小。请你以字符串形式返回这个最小的数字。示例 1 :输入:num = "1432219", k = 3输出:"1219"解释:移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219 。示例 2 :输入:num = "10200", k = 1输出:"200"解释:移掉首位的 1 剩下的数字为 200. 注意输出不能有任何前导零。示例 3 :输入:num = "1..

2022-04-05 17:08:04 82

原创 [Leetcode]202. 快乐数

编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为1,那么这个数就是快乐数。如果 n 是 快乐数 就返回 true ;不是,则返回 false 。示例 1:输入:n = 19输出:true解释:12 + 92 = 8282 + 22 = 6862 + 82 = 10012 + 02 + 02 = 1..

2022-04-05 16:02:54 161

原创 [Leetcode]201. 数字范围按位与

给你两个整数 left 和 right ,表示区间 [left, right] ,返回此区间内所有数字 按位与 的结果(包含 left 、right 端点)。示例 1:输入:left = 5, right = 7输出:4示例 2:输入:left = 0, right = 0输出:0示例 3:输入:left = 1, right = 2147483647输出:0提示:0 <= left <= right <= 231 - 1code:cla.

2022-04-05 15:55:00 113

原创 [Leetcode]368. 最大整除子集

给你一个由 无重复 正整数组成的集合 nums ,请你找出并返回其中最大的整除子集 answer ,子集中每一元素对 (answer[i], answer[j]) 都应当满足:answer[i] % answer[j] == 0 ,或answer[j] % answer[i] == 0如果存在多个有效解子集,返回其中任何一个均可。示例 1:输入:nums = [1,2,3]输出:[1,2]解释:[1,3] 也会被视为正确答案。示例 2:输入:nums = [1,2,4,8]输出:[

2022-04-05 14:47:13 191

原创 [Leetcode]367. 有效的完全平方数

给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。进阶:不要 使用任何内置的库函数,如sqrt 。示例 1:输入:num = 16输出:true示例 2:输入:num = 14输出:false提示:1 <= num <= 2^31 - 1code:public class IsPerfectSquare { // 方法1 public boolean isPer...

2022-04-05 13:27:22 117

原创 [Leetcode]365. 水壶问题

有两个水壶,容量分别为jug1Capacity和 jug2Capacity 升。水的供应是无限的。确定是否有可能使用这两个壶准确得到targetCapacity 升。如果可以得到targetCapacity升水,最后请用以上水壶中的一或两个来盛放取得的targetCapacity升水。你可以:装满任意一个水壶清空任意一个水壶从一个水壶向另外一个水壶倒水,直到装满或者倒空示例 1:输入: jug1Capacity = 3, jug2Capacity = 5, tar...

2022-04-05 13:12:42 222

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除