自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (3)
  • 收藏
  • 关注

原创 python发邮件

import smtplib# email 用于构建邮件内容from email.mime.text import MIMEText# 发信方的信息:发信邮箱,QQ 邮箱授权码from_addr = '8****[email protected]'password = 'akqf****q****qbfif'# 收信方邮箱to_addr = '80****[email protected]'# 发信服务器smtp_server = 'smtp.qq.com'# 邮箱正文内容,第一个参数为内容,第二个参数

2022-05-26 08:47:39 184

原创 VBA连接Excel或者Access数据库

VBA连接access数据库vba连接Excel简化写法

2022-05-21 23:28:18 653

原创 经典的双指针算法

题目给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。分析暴力会超时通过双指针,从两端遍历计算出初试的最大容量sumheight值小的指针移动,每移动一次重新计算当前指针位置的最大容量sum和max比较,迭代到最后max就是最大容量代码class Solution {

2022-05-14 16:18:15 189

原创 二分查找的3个模板,能解决大多数的二分问题。

模板一int binarySearch(int[] nums, int target){ if(nums == null || nums.length == 0) return -1; int left = 0, right = nums.length - 1; while(left <= right){ // Prevent (left + right) overflow int mid = left + (right - left) / 2; if(

2022-05-10 23:53:09 215

原创 【LeetCode】句子中的有效单词数

题目句子仅由小写字母(‘a’ 到 ‘z’)、数字(‘0’ 到 ‘9’)、连字符(’-’)、标点符号(’!’、’.’ 和 ‘,’)以及空格(’ ')组成。每个句子可以根据空格分解成 一个或者多个 token ,这些 token 之间由一个或者多个空格 ’ ’ 分隔。如果一个 token 同时满足下述条件,则认为这个 token 是一个有效单词:仅由小写字母、连字符和/或标点(不含数字)组成。至多一个 连字符 ‘-’ 。如果存在,连字符两侧应当都存在小写字母(“a-b” 是一个有效单词,但 “-ab”

2022-02-14 15:50:07 6921

原创 【LeetCode】找到字符串中所有字母异位词

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

2022-01-25 21:22:23 87

原创 【LeetCode】替换后的最长重复字符

题目给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次。在执行上述操作后,找到包含重复字母的最长子串的长度。注意:字符串长度 和 k 不会超过 104。示例 1:输入:s = “ABAB”, k = 2输出:4解释:用两个’A’替换为两个’B’,反之亦然。示例 2:输入:s = “AABABBA”, k = 1输出:4解释:将中间的一个’A’替换为’B’,字符串变为 “AABBBBA”。子串 “BBBB” 有最长重复字母, 答案为

2022-01-25 16:27:04 159

原创 TreeMap&TreeSet的常用用法汇总

TreeMap 的常用方法TreeMap中的元素默认按照keys的自然排序排列。对Integer来说,其自然排序就是数字的升序;对String来说,其自然排序就是按照字母表排序降序排序可以这样TreeMap<Integer, String> map = new TreeMap<>(Comparator.reverseOrder());增加方法增添元素V put(K key, V value):将指定映射放入该TreeMap中V putAll(Map

2022-01-21 18:14:51 747 1

原创 【LeetCode】统计有序矩阵中的负数

题目给你一个 m * n 的矩阵 grid,矩阵中的元素无论是按行还是按列,都以非递增顺序排列。请你统计并返回 grid 中 负数 的数目。示例 1:输入:grid = [[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]]输出:8解释:矩阵中共有 8 个负数。示例 2:输入:grid = [[3,2],[1,0]]输出:0示例 3:输入:grid = [[1,-1],[-1,-1]]输出:3示例 4:输入:grid = [[-1]]

2022-01-20 14:42:38 243

原创 【LeetCode】公平的糖果交换 java

题目爱丽丝和鲍勃拥有不同总数量的糖果。给你两个数组 aliceSizes 和 bobSizes ,aliceSizes[i] 是爱丽丝拥有的第 i 盒糖果中的糖果数量,bobSizes[j] 是鲍勃拥有的第 j 盒糖果中的糖果数量。两人想要互相交换一盒糖果,这样在交换之后,他们就可以拥有相同总数量的糖果。一个人拥有的糖果总数量是他们每盒糖果数量的总和。返回一个整数数组 answer,其中 answer[0] 是爱丽丝必须交换的糖果盒中的糖果的数目,answer[1] 是鲍勃必须交换的糖果盒中的糖果的数

2022-01-20 11:42:48 123

原创 【LeetCode】检查整数及其两倍数是否存在java

题目给你一个整数数组 arr,请你检查是否存在两个整数 N 和 M,满足 N 是 M 的两倍(即,N = 2 * M)。更正式地,检查是否存在两个下标 i 和 j 满足:i != j0 <= i, j < arr.lengtharr[i] == 2 * arr[j]示例 1:输入:arr = [10,2,5,3]输出:true解释:N = 10 是 M = 5 的两倍,即 10 = 2 * 5 。示例 2:输入:arr = [7,1,14,11]输出:true解释:N

2022-01-19 18:07:48 108

原创 二分查找算法详解

本文就来探究几个最常用的二分查找场景:寻找一个数、寻找左侧边界、寻找右侧边界。而且,我们就是要深入细节,比如不等号是否应该带等号,mid 是否应该加一等等。分析这些细节的差异以及出现这些差异的原因,保证你能灵活准确地写出正确的二分查找算法。零、二分查找框架int binarySearch(int[] nums, int target) { int left = 0, right = ...; while(...) { int mid = (right + left)

2022-01-19 10:38:10 133

原创 【LeetCode】 最小时间差 java

题目给定一个 24 小时制(小时:分钟 “HH:MM”)的时间列表,找出列表中任意两个时间的最小时间差并以分钟数表示。示例 1:输入:timePoints = [“23:59”,“00:00”]输出:1示例 2:输入:timePoints = [“00:00”,“23:59”,“00:00”]输出:0题解class Solution { public int findMinDifference(List<String> timePoints) { int

2022-01-19 10:02:49 216

原创 【LeetCode】有效的完全平方数 java

题目给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。进阶:不要 使用任何内置的库函数,如 sqrt 。示例 1:输入:num = 16输出:true示例 2:输入:num = 14输出:false题解/** * 二分法查找 * @param num * @return */ public static boolean isPerfectSquare(int num)

2022-01-18 17:23:30 200

原创 【LeetCode】两个数组的交集 II java

题目给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]题解方法1 哈希表public static int[] intersec

2022-01-18 11:52:02 245

原创 【LeetCode】获取生成数组中的最大值 java

题目给你一个整数 n 。按下述规则生成一个长度为 n + 1 的数组 nums :nums[0] = 0nums[1] = 1当 2 <= 2 * i <= n 时,nums[2 * i] = nums[i]当 2 <= 2 * i + 1 <= n 时,nums[2 * i + 1] = nums[i] + nums[i + 1]返回生成数组 nums 中的 最大 值。示例 1:输入:n = 7输出:3解释:根据规则:nums[0] = 0nums[1] =

2022-01-17 20:46:29 189

原创 【LeetCode】使用最小花费爬楼梯 java

题目给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费。示例 1:输入:cost = [10,15,20]输出:15解释:你将从下标为 1 的台阶开始。支付 15 ,向上爬两个台阶,到达楼梯顶部。总花费为 15 。示例 2:输入:cost = [1,100,1,1,1,100,1,1,100,1]

2022-01-17 17:20:26 126

原创 【LeetCode】338. 比特位计数 java

题目给你一个整数 n ,对于 0 <= i <= n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n + 1 的数组 ans 作为答案。示例 1:输入:n = 2输出:[0,1,1]解释:0 --> 01 --> 12 --> 10示例 2:输入:n = 5输出:[0,1,1,2,1,2]解释:0 --> 01 --> 12 --> 103 --> 114 --> 1005 --> 1

2022-01-17 11:23:42 305

原创 【LeetCode】 最长回文子串 java

题目给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。示例 2:输入:s = “cbbd”输出:“bb”示例 3:输入:s = “a”输出:“a”示例 4:输入:s = “ac”输出:“a”题解解法1 动态规划public static String longestPalindrome(String s) { int len = s.length();

2022-01-13 09:10:26 137

原创 【LeetCode】Excel表列名称 java

题目给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。例如:A -> 1B -> 2C -> 3…Z -> 26AA -> 27AB -> 28…示例 1:输入:columnNumber = 1输出:“A”示例 2:输入:columnNumber = 28输出:“AB”示例 3:输入:columnNumber = 701输出:“ZY”题解public static String convertTo

2022-01-07 11:08:30 183

原创 【LeetCode】1763. 最长的美好子字符串 java

题目当一个字符串 s 包含的每一种字母的大写和小写形式 同时 出现在 s 中,就称这个字符串 s 是 美好 字符串。比方说,“abABB” 是美好字符串,因为 ‘A’ 和 ‘a’ 同时出现了,且 ‘B’ 和 ‘b’ 也同时出现了。然而,“abA” 不是美好字符串因为 ‘b’ 出现了,而 ‘B’ 没有出现。给你一个字符串 s ,请你返回 s 最长的 美好子字符串 。如果有多个答案,请你返回 最早 出现的一个。如果不存在美好子字符串,请你返回一个空字符串。示例 1:输入:s = “YazaAay”输出

2022-01-06 20:35:23 174

原创 【LeetCode】子数组最大平均数 I java

题目给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。请你找出平均数最大且 长度为 k 的连续子数组,并输出该最大平均数。任何误差小于 10-5 的答案都将被视为正确答案。题解经典的滑动窗口public static double findMaxAverage(int[] nums, int k) { // k == 1 时候 直接返回最大值的double类型 if (k == 1) { Arrays.sort(nums)

2022-01-06 17:10:07 329

原创 【LeetCode】存在重复元素 II

题目给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的 绝对值 至多为 k。示例 1:输入: nums = [1,2,3,1], k = 3输出: true示例 2:输入: nums = [1,0,1,1], k = 1输出: true示例 3:输入: nums = [1,2,3,1,2,3], k = 2输出: false来源:力扣(LeetCode)题解方法1暴力遍历publ

2022-01-06 16:10:17 106

原创 java集合中List,Set以及Map的使用

概述集合怎么选用注意Queue接口与List、Set同一级别,都是继承了Collection接口。看图你会发现,LinkedList既可以实现Queue接口,也可以实现List接口.只不过呢, LinkedList实现了Queue接口。Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类型如果是Queue时,就完全只能访问Queue接口所定义的方法 了,而不能直接访问 LinkedList的非Queue的方法),以使得只有恰当的方法才可以使用。SortedSet是个接

2022-01-06 10:43:27 89

原创 Arrays类常用的方法

java Arrays类中常用的方法1. toString方法信息:public static String toString(Array[] array)参数为数组将数组按照默认格式输出为字符串int[] arrInt = {55,44,33,22,11};//使用toString方法遍历数组,省可以替代自己编写的for循环String str = Arrays.toString(arrInt);System.out.println(str);//结果为:[55, 44, 33, 22,

2022-01-06 09:35:08 118

原创 【LeetCode】2 的幂 java

题目给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。示例 1:输入:n = 1输出:true解释:20 = 1示例 2:输入:n = 16输出:true解释:24 = 16示例 3:输入:n = 3输出:false示例 4:输入:n = 4输出:true题解方法一bitCount(int i) 函数,实现统计一个数的二进制位有多少个 1

2022-01-04 19:41:48 382

原创 【LeetCode】找到和最大的长度为 K 的子序列 java

题目给你一个整数数组 nums 和一个整数 k 。你需要找到 nums 中长度为 k 的 子序列 ,且这个子序列的 和最大 。请你返回 任意 一个长度为 k 的整数子序列。子序列 定义为从一个数组里删除一些元素后,不改变剩下元素的顺序得到的数组。示例 1:输入:nums = [2,1,3,3], k = 2输出:[3,3]解释:子序列有最大和:3 + 3 = 6 。示例 2:输入:nums = [-1,-2,3,4], k = 3输出:[-1,3,4]解释:子序列有最大和:-1 +

2022-01-04 16:06:48 818

原创 【LeetCode】 Sqrt(x)求平方根

2021年第一道题,加油!题目给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。示例 1:输入:x = 4输出:2示例 2:输入:x = 8输出:2解释:8 的算术平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。题解class Solution { public int mySqrt(i

2022-01-01 22:44:59 3564

原创 【LeetCode】判断完美数 java

题目对于一个 正整数,如果它和除了它自身以外的所有 正因子 之和相等,我们称它为 「完美数」。给定一个 整数 n, 如果是完美数,返回 true,否则返回 false示例 1:输入:num = 28输出:true解释:28 = 1 + 2 + 4 + 7 + 141, 2, 4, 7, 和 14 是 28 的所有正因子。示例 2:输入:num = 6输出:true示例 3:输入:num = 496输出:true示例 4:输入:num = 8128输出:true示例 5:输

2021-12-31 14:52:56 188

原创 【LeetCode】数组中两元素的最大乘积 java

题目给你一个整数数组 nums,请你选择数组的两个不同下标 i 和 j,使 (nums[i]-1)*(nums[j]-1) 取得最大值。请你计算并返回该式的最大值。示例 1:输入:nums = [3,4,5,2]输出:12解释:如果选择下标 i=1 和 j=2(下标从 0 开始),则可以获得最大值,(nums[1]-1)(nums[2]-1) = (4-1)(5-1) = 3*4 = 12 。示例 2:输入:nums = [1,5,4,5]输出:16解释:选择下标 i=1 和 j=3(下

2021-12-30 19:46:38 530

原创 【LeetCode】矩阵中战斗力最弱的 K 行 java

题目给你一个大小为 m * n 的矩阵 mat,矩阵由若干军人和平民组成,分别用 1 和 0 表示。请你返回矩阵中战斗力最弱的 k 行的索引,按从最弱到最强排序。如果第 i 行的军人数量少于第 j 行,或者两行军人数量相同但 i 小于 j,那么我们认为第 i 行的战斗力比第 j 行弱。军人 总是 排在一行中的靠前位置,也就是说 1 总是出现在 0 之前。示例 1:输入:mat =[[1,1,0,0,0],[1,1,1,1,0],[1,0,0,0,0],[1,1,0,0,0],[1,1,

2021-12-30 19:10:08 89

原创 【LeetCode】最后一块石头的重量 java

题目有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。示例:输入:[2,7,4,1,8,1]输出:1解释:先选出 7 和 8,得到 1,所以数组转

2021-12-30 15:12:42 142

原创 【LeetCode】输出数据流中的第 K 大元素 java

题目设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。请实现 KthLargest 类:KthLargest(int k, int[] nums) 使用整数 k 和整数流 nums 初始化对象。int add(int val) 将 val 插入数据流 nums 后,返回当前数据流中第 k 大的元素。示例:输入:[“KthLargest”, “add”, “add”, “add”, “add”, “add”][[3, [4, 5, 8

2021-12-30 14:43:50 391

原创 【LeetCode】相对名次 java

题目给你一个长度为 n 的整数数组 score ,其中 score[i] 是第 i 位运动员在比赛中的得分。所有得分都 互不相同 。运动员将根据得分 决定名次 ,其中名次第 1 的运动员得分最高,名次第 2 的运动员得分第 2 高,依此类推。运动员的名次决定了他们的获奖情况:名次第 1 的运动员获金牌 “Gold Medal” 。名次第 2 的运动员获银牌 “Silver Medal” 。名次第 3 的运动员获铜牌 “Bronze Medal” 。从名次第 4 到第 n 的运动员,只能获得他们的

2021-12-29 21:35:12 119

原创 【LeetCode】交替打印 FooBar(多线程)java

题目给你一个类:class FooBar { public void foo() { for (int i = 0; i < n; i++) { print("foo"); } } public void bar() { for (int i = 0; i < n; i++) { print("bar"); } }}两个不同的线程将会共用一个 FooBar 实例:线程 A 将会调用 foo() 方法,而线程

2021-12-27 16:48:15 451

原创 【LeetCode】最长递增子序列 java

题目给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组[0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例 2:输入:nums = [0,1,0,3,2,3]输出:4示例 3:输入:nums = [7,7,

2021-12-25 18:06:04 177

原创 【LeetCode】不同路径(简单动态规划) java

题目一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?输入:m = 3, n = 7输出:28示例 2:输入:m = 3, n = 2输出:3解释:从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向下 -> 向下向下 -> 向下 -> 向右向下 -> 向右 ->

2021-12-25 16:29:54 86

原创 【LeetCode】搜索插入位置 java

题目给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例 2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4示例 4:输入: nums = [1,3,5,6], tar

2021-12-25 15:40:24 144

转载 人与人相处的本质就是价值交换

人与人相处的本质就是 价值交换。一个人的总价值 = 物质价值 + 情绪价值。物质价值太浅显了大家都懂,仅就情绪价值这个问题,首先回想一下周围较长时间的好友%2B过往交往较长时间的恋人,其实每段关系能长久维持必然是因为双方可以互相提供情绪价值,具体有以下几种:治愈型价值:在我们伤心难过、迷茫心累的时候提供安慰和鼓励(比如失恋了找朋友哭诉,此时他就拥有了治愈你的情绪价值)指导型价值:在我们不思进取、过度膨胀的时候提供考虑问题的新视角和解决问题的方法论(比如工作不顺找朋友聊天,他教你如何和领导同事相处,

2021-12-24 15:43:25 1419

原创 【LeetCode】 判断数字是否是 2 的幂 java

题目给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。示例 1:输入:n = 1输出:true解释:20 = 1示例 2:输入:n = 16输出:true解释:24 = 16示例 3:输入:n = 3输出:false示例 4:输入:n = 4输出:true示例 5:输入:n = 5输出:false来源:力扣(LeetCode)链接:ht

2021-12-22 18:20:55 684

Java基础教程(java的起源)

java基础教程 强烈推荐!!!!!!!!!!!!!!!!

2018-07-22

机器学习论文TOP20篇

全球机器学习邻域论文top20篇,全球机器学习邻域论文top20篇

2018-01-10

MATLAB初学者教程 MATLAB编程-菜鸟入门(清晰版)

MATLAB初学者教程 MATLAB编程-菜鸟入门

2017-08-21

空空如也

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

TA关注的人

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