自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 剑指offer之二维数组中的查找

剑指offer之二维数组中的查找题目描述方法一题目描述在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]给定 target = 7,返回 true。给定 target = 3,返回 false。数据范围:矩阵的长宽满足 0≤n,m≤500,矩阵中

2022-03-08 20:05:47 87

原创 剑指offer之跳台阶

剑指offer之跳台阶题目描述解题思路题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。数据范围:1 ≤n≤40要求:时间复杂度:O(n) ,空间复杂度: O(1)示例1输入:2返回值:2说明:青蛙要跳上两级台阶有两种跳法,分别是:先跳一级,再跳一级或者直接跳两级。因此答案为2 .示例2输入:7返回值:21解题思路考虑这个过程很重要,也就是说考虑问题的思想,这里其实是动态规划跳到第n个台阶,

2022-03-07 15:19:22 455

原创 剑指offer之链表中环的入口结点

剑指offer之链表中环的入口结点题目描述方法一题目描述给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。数据范围: n≤10000,1<=结点值<=10000要求:空间复杂度 O(1),时间复杂度 O(n)方法一解题思路:利用set,遍历结点加入set,当加入set失败时,说明有重复结点,即环的入口结点。/* public class ListNode { int val; ListNode next = null;

2022-03-07 14:23:07 496

原创 剑指offer之链表中倒数最后k个结点

剑指offer之链表中倒数最后k个结点题目描述方法一题目描述输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。如果该链表长度小于k,请返回一个长度为 0 的链表。示例1输入:{1,2,3,4,5},2返回值:{4,5}说明:返回倒数第2个节点4,系统会打印后面所有的节点来比较.示例2输入:{2},8返回值:{}方法一解题思路:快慢指针法:先让qucik指针走K步,slow指针再走,当quick指针指向null时,返回slow指针即可。i

2022-03-07 08:55:37 129

原创 剑指offer之两个链表的第一个公共结点

剑指offer之两个链表的第一个公共结点题目描述方法一题目描述输入两个无环的单向链表,找出它们的第一个公共结点,如果没有公共节点则返回空。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)数据范围: n≤1000要求:空间复杂度 O(1),时间复杂度 O(n)输入描述:输入分为是3段,第一段是第一个链表的非公共部分,第二段是第二个链表的非公共部分,第三段是第一个链表和第二个链表的公共部分。 后台会将这3个参数组装为两个链表,并将这两个链表对应的头节点传入到

2022-03-04 17:04:29 257

原创 剑指offer之求1+2+3+...+n

剑指offer之求1+2+3+...+n题目描述方法题目描述求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。数据范围: 0 <n≤200进阶: 空间复杂度 O(1) ,时间复杂度 O(n)方法解题思路:使用递归解法最重要的是指定返回条件,但是本题无法直接使用 if 语句来指定返回条件。条件与 && 具有短路原则,即在第一个条件语句为 false 的情况下不会去执行第二个条件语

2022-03-03 09:31:20 50

原创 剑指offer之调整数组顺序使奇数位于偶数前面(二)

剑指offer之调整数组顺序使奇数位于偶数前面(二)题目描述方法一错解题目描述输入一个长度为 n 整数数组,数组里面可能含有相同的元素,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前面部分,所有的偶数位于数组的后面部分,对奇数和奇数,偶数和偶数之间的相对位置不做要求,但是时间复杂度和空间复杂度必须如下要求。数据范围:00≤n≤50000,数组中每个数的值 0≤val≤10000要求:时间复杂度 O(n),空间复杂度 O(1)方法一解题思路就是如果前面的数一直为奇数就++,如果

2022-03-02 08:54:33 58

原创 剑指offer之从尾到头打印链表

剑指offer之从尾到头打印链表题目描述题解一题目描述输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。如输入{1,2,3},返回一个数组为[3,2,1]0 <= 链表长度 <= 10000题解一解题思路:利用栈先进后出的特性,遍历链表,push进栈,再定义一个数组,pop出栈。/*** public class ListNode {* int val;* ListNode next = null;**

2022-03-01 08:50:08 559

原创 剑指offer之替换空格

剑指offer之替换空格题目描述题解一题目描述请实现一个函数,将一个字符串s中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。数据范围:0≤len(s)≤1000 。保证字符串中的字符为大写英文字母、小写英文字母和空格中的一种。进阶:时间复杂度 O(n) ,空间复杂度 O(n)题解一解题思路:定义一个字符串str,遍历s, 当遍历到非空格,str+=s.chatAt(i),遍历到空格,stt+="%20"。im

2022-02-28 15:18:16 119

原创 剑指offer之数组中重复的数字

剑指offer之数组中重复的数字题目描述题解一题解二题解三题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组[2,3,1,0,2,5,3],那么对应的输出是2或者3。存在不合法的输入的话输出-1。数据范围:0≤n≤10000进阶:时间复杂度O(n),空间复杂度O(n)题解一解题思路:定义一个新的数组a[n],遍历所给的数组numbers,当遍

2022-02-27 21:25:17 174

原创 深度学习之神经网络

神经网络神经网络由输入层、隐藏层、输出层组成神经网络类别1、单层神经网路(感知机):类似逻辑回归,线性分类,全连接没有激活函数2、两层神经网络(多层感知机):带一个隐层,非线性分类,全连接3、多层神经网络(深度学习):全连接4、卷积神经网络(CNN):非全连接5、循环神经网络(RNN):处理序列数据神经网络的三种函数激活函数作非线性变换常用的激活函数Sigmoid:输出0到1Tanh:输出-1到1Relu:小于0取0,大于0取本身损失函数是神经网络优化的目标函数,神经

2021-03-12 10:34:49 418

原创 LeetCode 242有效的字母异位词

题目描述解法解法都是别人的,做一个搬运解法的搬运工。解法一如果 s 和 t 的长度不同,t 必然不是 s 的异位词。t 是 s 的异位词等价于「两个字符串排序后相等」。因此我们可以对字符串 s 和 t 分别排序,看排序后的字符串是否相等即可判断。class Solution { public boolean isAnagram(String s, String t) { //如果s和t长度不相等,肯定不是字母异位词 if (s.length() !=

2021-03-07 17:17:50 83

原创 LeetCode 141环形链表

题目描述解法解法一暴力解法:题目中链表中节点的数目范围是0到10的4次方,我们可以设置一个num记录遍历的节点数,如果超过10000,说明有环/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } *

2021-03-05 09:00:04 65 1

原创 K折交叉验证

所谓K折交叉验证,就是在进行实验时:将数据集等比例划分成K份,以其中的一份作为测试数据,其他的K-1份数据作为训练数据。然后,这样算是一次实验,而K折交叉验证只有实验K次才算完成完整的一次,也就是说交叉验证实际是把实验重复做了K次,每次实验都是从K个部分选取一份不同的数据部分作为测试数据(保证K个部分的数据都分别做过测试数据),剩下的K-1个当作训练数据,最后把得到的K个实验结果进行平分。...

2021-03-03 19:18:42 258 1

原创 LeetCode 207反转链表

题目描述反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-linked-list解法解法一使用头插法进行反转链表/** * Definition for singly-linked

2021-03-03 10:44:25 50

原创 LeetCode 707设计链表

题目描述设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第 index 个节点的值。如果索引无效,则返回-1。addAtHead(val):在链表的第一个元素之前添加一个值为 val 的节点。插入后,新节点将成为

2021-03-02 10:41:08 56

原创 机器学习之天下没有免费午餐定理

没有免费午餐定理(No Free Lunch Theorem)如果我们不对特征空间有先验假设,则所有算法的平均表现是一样的。但是我们认为:特征差距小的样本更有可能是同一类。

2021-03-01 21:01:16 840

原创 LeetCode 203删除链表元素

问题描述删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5解法解法思想 此题删除链表中元素是很简单的,只需要让待删节点之前一个节点指向待删节点之后一个节点即可。 这里我们讨论两种解法。 在java中定义单链表的代码如下: public class ListNode { int val;

2021-03-01 19:23:44 89 3

原创 LeetCode 2.19 每日打卡 1004最大连续1的个数 III

题目描述解法解法一暴力解法两个for循环class Solution { public int longestOnes(int[] A, int K) { //虽然自己的思路就是用滑动窗口做,在终止位置向右移动过程中,遇到0,将其变成1,然后K-1,直到再遇到0,K=0时结束 //但是吧先写暴力解法 int length = 0; //子数组的长度 int finalLength = 0; //最后要返回的子数组的长度

2021-02-19 11:36:27 70

原创 LeetCode 209长度最小的子数组

题目描述解法解法一暴力解法,两个for循环找相应的满足大于target的最短子序列的长度class Solution { public int minSubArrayLen(int target, int[] nums) { //暴力解法 int sum = 0; //子序列和 int length = 0; //满足和大于s的子序列的长度 int finalLength = 100001; //题目中数组长度为1-10的5次

2021-02-18 10:03:28 176

原创 LeetCode 27移除元素

问题描述给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并“原地”修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝

2021-02-17 17:46:30 55

原创 LeetCode 2.17 每日打卡 566重塑矩阵

输入: nums = [[1,2], [3,4]]r = 1, c = 4输出: [[1,2,3,4]]

2021-02-17 11:00:11 54

原创 LeetCode 2.16 每日打卡 561数组拆分 I

问题描述给定长度为 2n 的整数数组 nums ,你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), …, (an, bn) ,使得从 1 到 n 的 min(ai, bi) 总和最大。返回该 最大总和 。示例 1:输入:nums = [1,4,3,2]输出:4解释:所有可能的分法(忽略元素顺序)为:(1, 4), (2, 3) -> min(1, 4) + min(2, 3) = 1 + 2 = 3(1, 3), (2, 4) -> min(1,

2021-02-16 22:33:42 202

原创 LeetCode 35搜索插入位置

问题描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/search-

2021-02-16 22:28:18 83

转载 Win10下完整删除 [双系统ubuntu18.04](以及EFI、启动项)

Win10下完整删除 [双系统ubuntu18.04](以及EFI、启动项)详细步骤见https://blog.csdn.net/cxrshiz7890/article/details/105792563?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight&depth_1-utm_source=distribute.pc_relevant_t0.none-t

2020-11-15 17:04:33 132

原创 各种排序算法比较和总结

各种排序算法比较和总结插入排序插入排序思想插入排序代码插入排序插入排序思想遍历数组,遍历到i时,a0,a1...ai-1是已经排好序的,将ai从ai-1开始向前和每个比较大小,如果小于,则将此位置元素向后移动,继续向前比较,如果不小于,则放到正在比较的元素之后。从算法思想可以看出,当相等元素比较时,原来靠后的元素经过比较后还是在后边,所以插入排序是稳定的插入排序代码def insertionSort(arr): for i in range(1,len(arr)): #第一个元素本来就是

2020-09-26 16:50:56 95

原创 python之机器学习

机器学习机器学习分类监督学习(Supervised Learning)无监督学习(Unsupervised Learning)强化学习(Reinforcement Learning)半监督学习(Semi-supervised Learning)深度学习(Deep Learning)Python Scikit-learn机器学习分类监督学习(Supervised Learning)无监督学习(Unsupervised Learning)强化学习(Reinforcement Learning)半监督学

2020-07-08 17:56:24 96

原创 python学习记录之输入输出

python学习记录之输入输出输入输出格式化字符串输入和输出示例输入input(),括号内可填写提示信息,input()返回值是字符串例如:要计算x+y的值x=input('请输入x的值:')y=input('请输入y的值:')print(int(x)+int(y))输出print(),显示在终端上,除了输出数据,还有三个 缺省项,完整的print如下:print(数据,sep=’ ‘,end=’\n’,file=sys.stdout)print函数默认把对象打印到stdout流,并且

2020-06-21 08:38:56 476

原创 python学习记录之容器类型

列表与元组列表与元组列表元组列表与元组列表列表我们可以理解为可以接长、拆短的积木式收纳盒元组元组我们可以理解为固定长短的收纳盒

2020-06-20 16:03:52 68

空空如也

空空如也

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

TA关注的人

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