自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 【刷题第十一天】leetcode 475. 供暖器

题目:冬季已经来临。 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖。在加热器的加热半径范围内的每个房屋都可以获得供暖。现在,给出位于一条水平线上的房屋 houses 和供暖器 heaters 的位置,请你找出并返回可以覆盖所有房屋的最小加热半径。说明:所有供暖器都遵循你的半径标准,加热的半径也一样。示例 1:输入: houses = [1,2,3], heaters = [2]输出: 1解释: 仅在位置2上有一个供暖器。如果我们将加热半径设为1,那么所有房屋就都能得到供暖。思路:

2021-08-12 23:35:26 272

原创 【刷题第十一天】leetcode413. 等差数列划分

题目:如果一个数列 至少有三个元素 ,并且任意两个相邻元素之差相同,则称该数列为等差数列。例如,[1,3,5,7,9]、[7,7,7,7] 和 [3,-1,-5,-9] 都是等差数列。给你一个整数数组 nums ,返回数组 nums 中所有为等差数组的 子数组 个数。子数组 是数组中的一个连续序列。思路:从数组的第一个元素开始遍历,判断以第一个元素开始的所有子数组是否为等差数列,首先计算出前两个元素的差,如果第三个元素和第二个元素的差相等,则等差数组的个数加一,遇到不相等的情况直接退出当前元素的

2021-08-10 23:47:24 174

原创 【刷题第十天】leetcode 167.. 两数之和 II - 输入有序数组

题目:给定一个已按照 升序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target 。函数应该以长度为 2 的整数数组的形式返回这两个数的下标值。numbers 的下标 从 1 开始计数 ,所以答案数组应当满足 1 <= answer[0] < answer[1] <= numbers.length 。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。思路:做个遍历,因为题目假设只对应唯一的答案,所以遍历的时候判断和等于t

2021-08-10 00:09:21 192

原创 【刷题第九天】leetcode560. 和为K的子数组

题目:给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :思路:找出所有的连续子数组,依次计算和并且和k做比较,相等的则个数加一代码:public int subarraySum(int[] nums, int k) { int ans = 0; for (int i = 0; i < nums

2021-08-08 23:07:31 91

原创 【刷题第八天】leetcode187. 重复的DNA序列

题目:所有 DNA 都由一系列缩写为 ‘A’,‘C’,‘G’ 和 ‘T’ 的核苷酸组成,例如:“ACGAATTCCG”。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。编写一个函数来找出所有目标子串,目标子串的长度为 10,且在 DNA 字符串 s 中出现次数超过一次。示例 1:输入:s = “AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT”输出:[“AAAAACCCCC”,“CCCCCAAAAA”]思路:滑动窗口+hashmap滑动窗口生成对应的子串

2021-08-06 00:19:06 109

原创 【刷题第七天】leetcode611.有效三角形的个数

题目:给定一个包含非负整数的数组,你的任务是统计其中可以组成三角形三条边的三元组个数。示例 1:输入: [2,2,3,4]输出: 3解释:有效的组合是:2,3,4 (使用第一个 2)2,3,4 (使用第二个 2)2,2,3思路一:要能构成三角形,需要保证任意两边之和大于第三边,那么可以对输入的数组先进行排序,这样只需要保证小的两边之和大于第三边即可。代码:public int triangleNumber(int[] nums) { Arrays.sort(nums

2021-08-05 00:15:51 258

原创 【刷题第六天】leetcode581.最短无序连续子数组

题目:给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。请你找出符合题意的 最短 子数组,并输出它的长度思路一:目的是让整个数组有序,那么我们可以先将数组拷贝一份进行排序,然后使用两个指针 ii 和 jj 分别找到左右两端第一个不同的地方,那么 [i, j][i,j] 这一区间即是答案。代码:class Solution { public int findUnsortedSubarray(int[] nums) {

2021-08-04 00:09:32 81

原创 【刷题第五天】leetcode720. 词典中最长的单词

题目给出一个字符串数组words组成的一本英语词典。从中找出最长的一个单词,该单词是由words词典中其他单词逐步添加一个字母组成。若其中有多个可行的答案,则返回答案中字典序最小的单词。若无答案,则返回空字符串。思路:暴力解法,先排序,然后从数组倒序进行遍历,看其子串是否在前面出现过代码:public String longestWord(String[] words) { //对原数组中的元素排序 Arrays.sort(words); Str

2021-08-03 00:20:42 72

翻译 【刷题第四天】leetcode1743. 从相邻元素对还原数组

题目:存在一个由 n 个不同元素组成的整数数组 nums ,但你已经记不清具体内容。好在你还记得 nums 中的每一对相邻元素。给你一个二维整数数组 adjacentPairs ,大小为 n - 1 ,其中每个 adjacentPairs[i] = [ui, vi] 表示元素 ui 和 vi 在 nums 中相邻。题目数据保证所有由元素 nums[i] 和 nums[i+1] 组成的相邻元素对都存在于 adjacentPairs 中,存在形式可能是 [nums[i], nums[i+1]] ,也可能是

2021-07-30 00:22:55 95

原创 【刷题第三天】leetcode74搜索二维矩阵

编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。方法一:两次二分查找思路由于每行的第一个元素大于前一行的最后一个元素,且每行元素是升序的,所以每行的第一个元素大于前一行的第一个元素,因此矩阵第一列的元素是升序的。我们可以对矩阵的第一列的元素二分查找,找到最后一个不大于目标值的元素,然后在该元素所在行中二分查找目标值是否存在。class Solution { public bo

2021-07-23 00:29:22 100

原创 【刷题第二天】剑指offer37两个链表的第一个公共节点

题目:输入两个链表,找出他们的第一个公共节点思路:如果两个链表有公共节点,那么公共节点出现在两个链表的尾部,如果我们从两个链表的尾部开始往前比较,最后一个相同的节点就是我们要找的第一个公共节点;但是单向列表中,我们只能从头节点开始遍历,但是对于不同长度的链表,我们从头开始遍历到尾节点的时间就不一致;首先遍历两个链表得到它们的长度,就能知道那个链表比较长,以及长的链表比短的链表多几个节点,在第二次遍历的时候,在较长的链表上先走几步,接着再同时再两个链表上遍历,找到的第一个相同的节点就是他们的第一个公共节点

2021-07-21 23:32:08 86

原创 【刷题第一天】剑指offer38数字在排序数组中出现的次数

【刷题第一天】 数字再排序数组中出现的次数题目:统计一个数字在排序数组中出现的次数。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: 2示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出: 0输入的数组是排好序的,那么首先想到用二分查找算法:要统计出现的次数,那么只需要找到第一个K和最后一个K;首先分析如何用二分查找在数组中找到第一个K;首先拿数组中间的数字和K做比较,(1) 、if(nums[m] >

2021-07-20 23:42:59 49

原创 Java多线程以及线程状态转换

Java多线程以及线程状态转换Java实现多线程的方式:1 继承Thread类,重写run方法。class MyThread extends Thread{ public void run(){ System.out.println(Thread.currentThread().getName()+"MyThread.run()!!"); }}publi...

2019-10-28 20:55:12 206

原创 Java IO流

JAVA IO 流IO 流的总体分类:流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间传输成为流流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。字节流是Java中可以按照最小字节单位读取的流,每次读写一个字节,字节流是直接连接到输入源的流。字符流以字符为最小单位读取。字节流和字符流的区别:在所有的流操作中,...

2019-09-26 21:08:15 125

原创 JAVA8lambda表达式和stream流

真的是好久没有来写了,今天来总结一下传说中的lambda和streamJAVA8 特性分析lambda表达式和函数式接口streamlambda表达式和函数式接口允许把函数当做参数传递给某个方法,或者把代码本身当作数据处理;(行为参数化)语法格式:(parameters)->expression 或者 (parameters)->{statements;}...

2019-09-26 21:05:51 263

转载 JAVA8新特性

Java8新特性lambda表达式详解一篇讲的很不错的博文

2019-09-02 17:21:29 94

原创 链表常见的面试题

1、从链表的末尾添加节点2、删除链表节点给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该节点如果用头指针开始遍历链表时间复杂度为O(n),要在O(1)的时间删除,需要得到被删除的结点的前一个结点,但是前一个结点很难获得,但是我们可以很方便的得到要删除的结点的下一个结点,如果我们把下一个结点的内容复制到需要删除的结点上覆盖原有的内容,在把下一个结点删除。代码实现:...

2018-09-01 17:30:55 377

原创 动态规划常见题

动态规划是运筹学的一个分支,是求解决策过程最优化的数学方法。利用各个阶段之间的关系,逐个求解,最终求的全局最优解。在设计动态规划算法时,需要确认原问题与子问题、动态规划状态、边界状态的值、状态转移方程等关键要素。爬楼梯(leetcode70)在爬楼梯时,每次可向上走1阶台阶或2阶台阶,问有n阶楼梯有多少种上楼的方式?由于每次最多爬2阶,楼梯的第i阶,只可能从第i-1阶与第i-2阶到达。...

2018-08-19 12:28:49 1861 1

原创 常见的回溯算法例题总结

例一:火柴棍摆正方形(leetcode 473) 已知一个数组,保存了N个火柴棍,问是否可以使用这N个火柴棍摆成一个正方形? 思考:回溯算法如何设计?如何设计递归函数,递归的回溯搜素合适返回真,何时返回假?普通的回溯搜索是否可以解决该问题,如何让对深度搜索进行优化?算法设计: 想象正方形的4条边即4个桶,将每个火柴杆回溯的放置在每个桶中,在放完N个火柴杆后,检...

2018-08-07 22:53:46 12233

原创 CNN中感受野的计算

感受野(receptive field),从可视化的角度来讲,就是输出featuremap 某个节点的响应对应的输入图像的区域就是感受野。 这个感受野的大小应该怎么去算,我们首先需要知道CNN中进行卷积和池化的操作时,参数的值应该怎么去计算,首先举一个特别简单的例子。我们的输入图像是5*5的图像,经过一个大小为2*2,步长为1的卷积核的处理后,得到的图像大小变成了4*4,再经过一个2*2,步长为...

2018-07-05 23:54:04 261

原创 初探逻辑斯蒂回归(LR)

逻辑回归(logistic regression)是统计学习中的经典分类方法。逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上,套用了一个逻辑函数,但也就由于这个逻辑函数,使得逻辑回归模型成为了机器学习领域一颗耀眼的明星,更是计算广告学的核心。逻辑斯蒂分布 设XXX是连续随机变量,XXX服从逻辑斯蒂分布是指XXX具有下列分布函数与密度函数:F(x)=P(...

2018-06-20 15:39:55 811

原创 剑指offer (python实现)

面试题41:和为s的两个数字VS和为s的连续正整数序列题目一:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s,如果有多对数字的和等于s,输出任意一对即可。分析:对于这个问题,最容易想到的就是现在数组中固定一个数字,再依次判断数组中其余的n-1个数字与它的和是不是等于s。这种做法的复杂度为O(n2)O(n2)O(n^2)。进一步优化算法:现在数组中选择两个数字,...

2018-06-18 23:07:39 629

原创 贪心算法典型例题

贪心是算法中一种特别基础和重要的思想,下面从几个例题中开始讲解贪心的思想。1. 分糖果(leetcode455) 题目:已知一些孩子和一些糖果,每个孩子有需求因子g,每个糖果有大小s,当某个糖果的大小s&amp;amp;amp;gt;=某个孩子的需求因子g时,代表该糖果可以满足该孩子,求使用这些糖果,最多能满足多少孩子(注意,某个孩子最多只能用1个糖果满足)思考:当某个孩子可以被多个糖果满足时,是否需要...

2018-06-17 23:05:26 35534 3

原创 初探决策树

决策树是机器学习中非常重要的一个算法,是一种基本的分类与回归方法。决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。它可以认为是IF-THEN规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。其主要优点是模型具有可读性,分类速度快。决策树学习通常包括3个步骤:特征选择、决策树的生成和决策树的修剪 接下来主要从以下三个方面开始介绍:1. 特征选择 2. 决...

2018-06-14 22:58:29 232

原创 算法(python)11 宽度优先搜索

词语阶梯(leetcode127 Word Ladder) 题目:一直两个单词(分别是起始单词与结束单词),一个单词词典,根据转换规则计算从起始单词到结束单词的最短转换步数。 转换规则:在转换时,只能转换单词中的一个字符。转换得到的新单词,必须在单词词典中。 例如:beginWord = “hit”;endWord = “cog”;wordList = [“hot”,”dot”,”d...

2018-06-13 23:30:42 1446

原创 初探支持向量机

支持向量机最近在复习机器学习的算法,今天来写一写支持向量机,作为一个自己学习的记录。首先总体来分析一下支持向量机(SVM),支持向量机是一种二分类的模型。属于监督学习的一类。它的基本模型是定义在特征空间上的间隔最大的线性分类器。学习策略就是间隔最大化,可以形式化为一个求解凸二次规划的问题。它是90年代中期发展起来的基于统计学习理论的一种机器学习方法,通过寻求结构化风险最小来提高学习机泛...

2018-06-13 21:35:24 242

空空如也

空空如也

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

TA关注的人

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