自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CSS学习笔记

css的基本知识一、初识CSS1.1 CSS是什么1.2 CSS发展史1.3CSS的三种导入方式 1.3.1 内部样式: 1.3.2 外部样式(推荐使用): 1.3.3 行内样式二、CSS选择器⭐三、美化网页(文字,阴影,超链接,列表)四、盒子模型五、浮动六、定位七、网页动画(特效)一、初识CSS1.1 CSS是什么CSS:Cascading Style Sheet 层叠级联样式表 ...

2022-02-28 21:20:21 1142 4

原创 HTML5基础知识

一、初识HTMLHTML:Hyper Text Markup Language(超文本标记语言)超文本包括:文字、图片、音频、视频、动画等HTML5的优势: 跨平台、 W3C标准 World Wide Web Consortium(万维网联盟) 成立于1994年,Web及时领域最权威和具影响力的国际中立性技术标准机...

2022-02-13 17:18:50 1575 8

原创 《人工智能及其应用》重点回顾

1.1 人工智能的发展阶段1. 孕育时期(1956年前)人工智能开拓者们在数理逻辑、计算本质、控制论、信息论、自动机理论、神经网络模型和电子计算机等方面做出的创造性贡献,奠定了人工智能发展的理论基础。2. 形成时期 (1956-1970)AI诞生于一次历史性的聚会—达特茅斯会议,迅速发展,过于乐观3. 暗淡(低潮)时期 (1956-1970)过高预言的失败,给AI的声誉造成重大伤害,同时,许多人工智能理论和方...

2021-12-30 00:39:10 2244

原创 《算法分析与设计》复习笔记

算法是由若干条指令组成的有穷序列,具有5个特性:确定性、能行性、输入、输出、有穷性●P类问题是多项式时间内可解的●NP类问题是多项式时间内可验证●存在这样一个NP问题,所有的NP问题都可以约化成它。这种问题不只一个,它有很多个,它是一类问题。这一类问题就是NPC 问题。其定义要满足2个条件:➢它是一个NP问题;➢所有NP问题都能规约到它。●满足NPC问题定义的第二条而不满足第一条。即所有的NP问题都能约化到它,但是他不一定是一个NP问题。问题A可以规约为B(记作A≤pB)

2023-01-13 20:43:06 332

原创 Acwing算法基础【1】基础(三)前缀和与差分

能够快速地求出来原数组中一段数据的和,例如,如果想算一个数组中[l,r]的 数组的和,没有前缀和数组的话,复杂度就是O(n)的 ,如果有的话,我们就是可以直接 用 Sr - Sl-1 得到,查询的复杂度就是O(1), 但是求一个前缀和数组的复杂度就是O(n),适用于输入一组数据,让求好几段的数据的和的情况,例如给定一个区间 [l, r] 让a数组,这里边所有的数都加上c,如果是用遍历,那就需要O(n)的复杂度。就[1,1] 的区间+a1, [2, 2]的区间+a2 …[n, n]的区间+an。

2022-11-10 14:54:32 130

原创 Acwing算法基础学习笔记(二)二分

可以在写代码的时候,先不加1,然后 在调整区间的时候,看一下更新的时候,如果 r=mid-1 有减一的操作,就再去中间值更新的地方加上1,如果更新区间的时候,mid+1 或者直接取mid 没有加减操作的,就都可以不用补加一。例如说,当l = r-1的时候,mid如果只是(l+r)/2,就还是l,如果mid满足条件,更新l=mid,l就还是原来的l,会陷入死循环,所以要加1,让mid算出来是r。Step3、一直到最后,l 会和r 相遇,判断一下l 是不是我们要找的,就完成了。的问题,感觉 都会用二分,

2022-11-07 18:57:53 120

原创 C语言基础知识梳理(三)函数专题

C语言是由函数组成的,每一个C程序都至少有一个函数,即main() 函数,函数都是从主函数main()开始执行,一个C程序中,有且仅有一个main() 函数,其他函数的名字也是唯一的函数的使用可以省去重复代码的编写,降低重复率,可以让程序更加模块化,有助于程序的阅读、修改、完善返回值类型 函数名称( 参数 ){函数主体}1、返回值返回值类型: 一个函数只能有一个。

2022-10-25 15:23:07 628 4

原创 Acwing算法基础学习笔记(一)快排和归并

一、排序1.1 快速排序1.1.1分治法快速排序是先在一个数组中,找到一个 “参考元素” 或者叫 “分界点”x,然后用两个指针分别从左右两端向中间走,如果是要升序,左边只保留比x小的,右边只保留比x大的,两个指针分别到不满足的地方停下,然后两个指针都停下的时候就交换。。等到两个指针回合,就把数组分成了两份,然后再对每一份进行二分的排序。1.1.2xstep1、确定分界点x,取法其实很随意,q[l]、q[(l+r)/2]、q[r] 、随机 都可以。

2022-10-24 16:42:10 269

原创 C语言基础知识梳理(二)数组和字符串专题

1)数组定义的基本格式:数据类型数组名[元素个数]={值1, 值2, 值3};数组名不仅表示该数组的名字,还可以表示该数组的首地址,这种给所有元素都复制,称为“完全初始化”,这个时候,[ ]里的元素个数可以省略。2)如果定义数组的时候,{ }中的数值个数

2022-10-06 16:06:26 453

原创 C语言基础知识梳理(一)

目录一、C语言概述1.1 C语言发展史1.2 C语言的特点1.3 第一个C语言程序1.4 System函数的使用1.5 C语言的编译过程1.6 断点和单步调试二、数据类型2.1 数据类型概述2.1.1 关键字32个2.1.2 数据类型2.1.3 常量2.1.4 变量2.2 整型2.2.1 整型变量的定义和输出2.2.2 整型输入2.2.3 整型的大小和取值范围 short、int、long、 long long2.3 sizeof 关键字2.4 字符型:char2.4.1 字符串变量的定义和输出2.4.2

2022-07-11 11:04:45 525

原创 jQuery学习笔记

jQuery的下载和导入, jQuery的初步学习 选择器 事件 基本语法

2022-04-16 18:25:19 545

原创 JavaScript学习笔记(下)

JavaScript相关知识,原型继承、class继承、操作DOM和BOM、操作表单

2022-04-15 23:14:35 144

原创 JavaScript学习笔记(上)

JavaScript简介、基本语法,引入方法,基础入门(数组、函数等)、json、浏览器控制台的使用

2022-04-15 23:08:56 474 1

原创 Java基础知识

一、Java帝国的诞生 1、C&C++ 1972年C诞生 贴近硬件,运行极快 操作系统,编译器,数据库,网络系统等 指针和内存管理(沉重的枷锁) 1982年C++诞生 面向对象 兼容C 图形领域、游戏等 ...

2022-02-11 10:21:41 383 1

原创 电脑常用快捷键+常用Dos命令

Ctrl+C: 复制Ctrl+V:粘贴Ctrl+A:全选Ctrl+X: Ctrl C 复制 V 粘贴 A 全选 X 剪切 Z 撤销 S 保存 Alt F4 关闭窗口 shift delete 永久删除 Ctrl+shift esc 打开任务管理器

2022-02-10 12:10:44 80 2

原创 《人工智能及其应用》课程笔记(五)第7章 机器学习

7.4 决策树学习7.4.1 机器学习的主要策略 1、决策树的学习过程(一颗决策树的生成过程):(1)特征选择:从训练数据中众多的特征中选择一个特征作为当前节点的分裂标准,如何选择特征有着很多不同量化评估标准标准,从而衍生出不同的决策树算法。三种纯度计算方法:基尼指数、信息熵、错误率(2)决策树生成: 根据选择的特征评估标准,从上至下递归地生成子节点,直到数据集不可分则停止决策树停止生长。 ...

2021-12-29 19:17:41 588

原创 《人工智能及其应用》课程笔记(四)第4章 非经典推理

本章内容 熟悉经典推理和非经典推理的区别 掌握不确定推理的基本概念 掌握概率推理方法 掌握主观贝叶斯推理方法 掌握可信度推理方法 了解证据理论的基本知识4.1 经典推理和非经典推理 非经典推理和经典推理的区别表现在:推理方法。经典采用演绎逻辑推理,非经典采用归纳逻辑推理。 辖域取值。经典逻辑都是二值逻辑,非经典是多值逻辑。...

2021-12-29 15:14:35 2948

原创 《人工智能及其应用》课程笔记(三)第3章 确定性推理

目录本章内容3.1 图搜索策略3.2 盲目搜索3.2.1 搜索策略的对比3.2.2 深度优先搜索-有限深度+迭代深度3.3 启发式搜索本章内容掌握图搜索的基本概念掌握盲目搜索和启发式搜索的区别掌握消解原理的含义及实际问题解决过程了解规则演绎系统的基本知识了解产生式系统的基本知识了解非单调推理的基本知识3.1 图搜索策略 图搜索控制策略:一种...

2021-12-28 16:11:37 1504

原创 《人工智能及其应用》课程笔记(二)第2章 知识表示方法

本章学习内容了解知识表示的基本含义⭐掌握常用的知识表示方法了解各知识表示方法的优缺点会用知识表示方法解决实际问题预备知识 1、什么是知识? 知识是一个抽象的术语,用于尝试描述人对某种特定对象的理解。 2、知识层次 3、知识的属性 真伪性、相对性、不完全性、不确定性、可表示性、可存储性、可传递性和可处理性、相容性...

2021-12-26 15:25:51 1894 5

原创 《人工智能及其应用》课程笔记(一)第1章 绪论

目录第1章 绪论1.1人工智能的定义与发展1.1.1人工智能的定义1.1.2人工智能的起源与发展第1章 绪论1.1人工智能的定义与发展1.1.1人工智能的定义 关于人工智能的定义,众说纷纭,还没有统一的定义。 一般的解释:人工智能就是用人工的方法在机器(计算机)上实现的智能,或称机器智能、计算机智能。知识:人们通过体验、学习或联想而知晓的对客观世界规律性的认识,包括事实、条件、过程、规则、关系和规律等。...

2021-12-22 21:59:02 2550 2

原创 LeetCode第15题,三数之和,Java,双指针,排序

问题:思路:因为需要不重复,所以,想到了先排序,然后,固定一个数 i ,剩下了两个数,就可以用两数之和的办法来考虑了,但是要注意,指针变化的时候,要找到下一个不一样的数的指针。代码:class Solution { public List<List<Integer>> threeSum(int[] nums) { List<List<Integer>> li = new ArrayList<List&lt

2021-07-30 21:34:37 35

原创 LeetCode第82题,删除排序链表中的重复元素Ⅱ,Java,双指针

问题:思路:引入一个头节点,让其next指向head 1 2 3 3 4 4 5 1,2 1 2 1 2 1 2(删) 1 2

2021-07-30 12:21:51 57

原创 LeetCode第162题,寻找峰值,Java,二分查找

问题:思路: 感谢前段时间的二分查找的练习,虽然这个不是排好序的,但是用二分法来解决还是很容易的。 主要分析mid,,如果mid位置上的值 大于两侧的,则满足条件 mid 与两侧的值还有另外其他的情况,举个栗子,mid-1 mid mid+1 位置上的值分别为(1) 左 < 中 > 右 (mid即为所求)(2)左 < 中 <右 (需要在mid - right 边查找)(3)左 &gt...

2021-07-29 14:20:40 101

原创 LeetCode第153题,寻找旋转排序数组中的最小值,Java,二分查找

问题:思路:跟昨天练的一个题很类似,这个就是用二分查找法,寻找左大于右的情况,代码:class Solution { public int findMin(int[] nums) { int left = 0; int right = nums.length-1; if(nums[left]<=nums[right]){ return nums[left]; } ..

2021-07-29 12:36:35 25

原创 LeetCode第74题,搜索二维矩阵,Java,二分查找

问题:思路:第一种思路是,把所有的拼起来就是一个数组嘛,然后用二分法就????了第二种思路是,先看第一列的,用二分查找,找到合适的行,然后再用二分查找,对应的一行第二种的思路还是,把自己的东西分区域,然后分别分析每个部分的情况,就是容易漏掉某些状态代码:class Solution { public boolean searchMatrix(int[][] matrix, int target) { int m = matrix.length;

2021-07-29 11:33:34 54

原创 LeetCode第33题,搜索旋转排序数组,Java,二分查找

问题:思路: 用二分查找,虽然是旋转数组,但是照样可以用,只不过我的写法可能比较麻烦,分的讨论情况比较多。例如 产生的left、mid、right的关系只可能有两种1、mid>=left>right2、mid<=right<left而针对每一种情况,target又只可能存在3个数产生的4个空隙中,例如对于第一种情况(0)target 首先如果等于 这三个数的任意一个,则可以返回(1)target 如果在left 和 right之...

2021-07-28 22:15:35 54

原创 LeetCode第34题,在排序数组中查找的第一个和最后一个元素,Java,二分查找

问题:思路:这里的二分查找,不同于之前的那个,这里边元素可以重复第一步:先用二分法找到target;第二步:从mid分成两部分,分别找第一个元素和最后一个 第一步,就不用多说,详情可以参考我之前的一篇笔记LeetCode第704题,二分查找,Java实现_代码小船的博客-CSDN博客 第一步是 step1和step2;然后以mid为分界线,将数组划分为两部分,left-mid 和 mid-right; 这里只讨论...

2021-07-28 15:53:47 41

原创 LeetCode第567题,字符串的排列,Java,滑动窗口

问题:思路: 用HashMap的方法 构想了好久,虽然解决了,但是性能不很好 我一开始的思路就是,因为只有窗口中的字母的个数与s1相同,才有希望,所以就从一开始就再s2中看s1.length()个字符,先用HashMap记录s1各个字母出现的个数,如果窗口中的情况与s1的相同,那就返回true。 然后一个个进出,进出中查看两边指针的字母,然后对HashMap进行更改。 但是HashMap 很显然更改其中字符很麻烦,并且,每个窗口,都要检查一次就很...

2021-07-26 16:20:01 67

原创 LeetCode第3题,无重复字符的最长字串,Java,滑动窗口

终于搞明白Java双指针了,前段时间有事情,所以有几天没进行算法的打卡,今天终于回归正常啦,继续进入滑动窗口的学习。问题:知识点:1、滑动窗口: 滑动窗口,就是通过一个非固定的窗口移动,找到答案,例如本题示例1中,abcabcbb,在窗口中的先是abc,然后a进入窗口,变为abca,但是不满足条件,然后滑动窗口。2、HashMap 用HashMap,记录窗口中的情况3、String、char类型的相关操作代码:...

2021-07-26 11:31:45 44

原创 LeetCode第19题,删除链表的倒数第 N 个结点,Java

问题:思路只用一次扫描,考虑双指针如果删除的不是头节点,例如删除长度为5的链表的倒数第3个节点,思路构造图如下:step1:两个指针,都指向头节点 step2:让右指针远离左指针 n 个节点 step3:左右指针依次向右移动1个节点 如果右指针的下一个为空,则删除做指针的下一个//如表格所示,1代表左边的...

2021-07-23 15:41:29 66 1

原创 LeetCode第876题,链表的中间结点,Java

问题:方法1最开始想到的,就是先遍历一遍,然后记录总数,然后再次遍历,找到中间的节点代码:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, Li

2021-07-23 15:00:47 47

原创 LeetCode第557题,反转字符串Ⅲ,Java

public String reverseWords(String s) { String[] str = s.split(" "); String reStr = ""; for(int i = 0;i<=str.length-1;i++){ if(i == str.length-1){ reStr += reverse4(str[i]); }else{ .

2021-07-16 10:11:50 72

原创 LeetCode第344题,反转字符串,Java

今天是简单的双指针问题,还没前几天的复杂呢。问题:代码: public void reverseString(char[] s) { int i = 0; int j = s.length-1; while(i<j){ char temp = s[i]; s[i] = s[j]; s[j] = temp; i++;

2021-07-16 08:48:42 21

原创 LeetCode第167题,两数之和Ⅱ,Java

问题:方法一:最常规的,就是俩for循环,挨个遍历,大于了 就下一轮,通过了但是 费时费空间,有待优化代码:

2021-07-15 13:00:04 42

原创 LeetCode第283题,移动零,Java

问题:思路:这个题比较简单。引入一个标记非0数的下表index,表示目前存到的位置遇到非零,将数据填入前边的位置index 0 1 0 3 1 2 0 continue 1 1 nums[index]=1 continue 2 3 nums[index.

2021-07-15 11:16:45 28

原创 LeetCode第189题,旋转数组,Java

问题:思路:方法1:最简单的,声明一个新列表,然后遍历记录方法2:引入一个标记数,用来更改标记的数值,然后一个个找已经存入新的地点的值循环k步,即可得到结果 1 2 3 4 5 6 flag 5 6 4 3 2

2021-07-14 19:11:55 46

原创 LeetCode第977题,有序数组的平方,java,[算法学习计划—双指针]

问题:思路:知识点:双指针想法:从数据两端往中间计算,直到汇合,总体不难,就不多说了。 -7 -3 2 3 11 left right 代码实现:class Solution { public int[] sortedSquares(int[] nums) { int[] squares = new int[nums.length]; /.

2021-07-14 11:44:45 15

原创 LeetCode第35题,搜索插入位置,Java

问题:思路: 同理,排好序的数组,还是二分法 二分法,造表格,清晰明了 造表格的详细解释,我的前两篇文章写的比较清楚,这里就只展示造出来的效果啦。 例子1: nums = [1,3,5,6,7] target=8 1 3 5 6 7 null step1 min mid max step2 min,mid...

2021-07-13 11:52:36 35

原创 LeetCode第278题,第一个错误的版本,Java

目录问题思路代码实现效果问题思路:因为是排好序的数组,所以第一反应就是运用二分查找 仍画一个表格进行分析,其中last 表示的是 最后一次看到的好版本 例子1: n = 7, bad = 3 因为在发现mid是坏的,跟last还差的很远的时候,我加入了一段代码,让last向后看,看看接着的一个是不是还是对的,如果是,那last进1,min进2进行判断,如下表: 如果我的思路比较跳脱的话...

2021-07-13 11:06:49 48

原创 LeetCode第704题,二分查找,Java实现

目录二分查找法的基本思想查找过程时间复杂度优缺点代码实现二分查找法的基本思想查找过程一个排好序的数组(本文假设升序),查找有没有某个数target,如果有,返回其下标,如果没有,返回-1二分查找法就是折半地去寻找,通过比对这一半的最中间的值,是否与target相等,如果不等,在折一半例如 nums=[-1,3,5,6,7,9], 目标target=7val -1 3 5 6 7 9 step1 min=0 .

2021-07-13 10:07:30 71

空空如也

空空如也

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

TA关注的人

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