自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【算法通关村 Day12】字符串

给你一个字符串s,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。

2025-02-26 16:56:26 623

原创 【算法通关村 Day11】位运算

位运算青铜挑战。

2025-02-26 16:41:32 692

原创 【算法通关村 Day10】快速排序与归并排序

快速排序与归并排序白银挑战快速排序的原理和实现快速排序(Quick Sort)是一种分治法(Divide and Conquer)策略的排序算法,它通过选择一个“基准”元素,将数组分成两个部分,左边部分小于基准元素,右边部分大于基准元素,然后递归地对这两个部分进行排序。partitionswapprintArray顺序可能在排序后改变。快速排序与归并排序白银挑战快速排序的应用。

2025-02-24 12:45:11 825

原创 【算法通关村 Day9】二分查找与二叉树的中序遍历

二分查找(Binary Search)是一种在已排序的数组中查找某个特定元素的算法。通过每次将查找范围缩小一半来提高查找效率,时间复杂度为 O(log n)。

2025-02-23 13:33:16 778

原创 【算法通关村 Day8】二叉树的深度优先经典问题

给你一个二叉树的根节点root,按,返回所有从根节点到叶子节点的路径。是指没有子节点的节点。这个问题要求我们找到二叉树中所有从根节点到叶子节点的路径。可以使用深度优先搜索(DFS)来遍历树,并在到达叶子节点时将路径添加到结果中。result每个节点访问一次,因此时间复杂度为 O(n),其中 n 是树中节点的个数。最坏情况下,递归栈的深度为树的高度,空间复杂度为 O(h),其中 h 是树的高度。对于平衡树,h ≈ log(n),对于不平衡树,h ≈ n。

2025-02-22 14:48:43 694

原创 【算法通关村 Day7】递归与二叉树遍历

int val;递归实现的核心在于每次对树的左右子树进行递归操作,递归的终止条件是节点为空。当节点不为空时,根据遍历顺序访问当前节点的值。1/ \2 3/ \4 5// 创建二叉树1 2 4 5 34 2 5 1 34 5 2 3 1。

2025-02-21 15:36:07 895

原创 【算法通关村 Day6】二叉树层次遍历

通过中序和后序遍历序列恢复二叉树是一个经典的二叉树构建问题。给定二叉树的中序遍历序列和后序遍历序列,我们可以利用以下步骤进行恢复。:后序遍历的最后一个元素是3,所以树的根节点是3。:在中序遍历数组中,3位于索引位置1{9}33{9}920{15}{15}15{7}{7}7。

2025-02-20 13:52:08 1344

原创 【算法通关村 Day5】Hash和队列的经典问题

哈希存储是通过哈希函数将数据映射到固定大小的数组(或桶)中,使得查找和插入操作的时间复杂度接近O(1)。哈希冲突是指两个或更多的键经过哈希计算后,得到相同的哈希值,导致它们被存储在相同的位置。

2025-02-19 15:32:12 1016

原创 【算法通关村 Day4】栈的基本操作及栈的应用

栈(Stack)是一种线性数据结构,遵循“后进先出”(LIFO, Last In First Out)原则。也就是说,最后插入的元素最先被移除。栈(Stack)可以通过不同的存储结构来实现,主要包括和两种方式。以下是这两种实现方式的基本操作及 Java 代码示例。

2025-02-18 15:54:07 603

原创 【算法通关村 Day3】数组与双指针

new这种方法是在声明时指定数组的大小,数组的元素将被初始化为默认值(对于整型数组,默认值是0这种方法不需要先声明数组的大小,而是直接给出元素值,数组的长度会根据元素个数自动推断。如果你已有一个数组,可以通过等方法来创建新数组并初始化。

2025-02-17 17:50:22 915

原创 【算法通关村 Day2】反转链表

方式二 迭代法(使用 3 个指针) :保存当前节点的 ,这样我们在修改 时,不会丢失对下一个节点的引用。 :将当前节点的 指向前一个节点 ,这样就完成了当前节点的反转。 :将 更新为当前节点,为下一次反转做准备。 :将 移动到下一个节点,继续进行反转。 prev 最终是新的头节点迭代法通过三个指针来逐步反转链表,时间复杂度为 O(n),空间复杂度为 O(1),只用了常数的额外空间。递归终止条件:如果链表为空()或者只有一个节点(),递归就结束,直接返回当前节点 作为新链表的

2025-02-16 15:05:30 661

原创 【算法通关村 Day1】链表的增删改查及链表中双指针法应用

链表(Linked List)是一种常用的数据结构,它由一系列。

2025-02-15 18:35:44 816 1

原创 【Java入门指南 Day15:Java网络编程】

网络编程是现代应用程序的重要组成部分。掌握这些基础知识对于构建可靠的网络应用至关重要。记住要注意资源管理、错误处理和性能优化。Socket是网络通信的基石,提供了端到端的通信机制。想象它就像电话系统,两端通过Socket建立连接后就可以互相通信。

2024-12-18 19:20:45 227

原创 【Java入门指南 Day14: 并发编程:多线程与同步机制】

并发编程是Java中最复杂的主题之一,正确理解和使用这些概念对于开发高性能、可靠的应用程序至关重要。记住要注意线程安全性、性能和死锁预防。synchronized用于实现线程同步,保证代码块或方法在同一时刻只能被一个线程执行。线程在其生命周期中会经历多个状态,理解这些状态及其转换对于正确使用多线程至关重要。原子类提供了线程安全的操作,无需使用synchronized。volatile保证了变量的可见性和有序性,但不保证原子性。线程池通过重用线程来减少线程创建和销毁的开销。

2024-12-18 19:15:02 179

原创 【Java入门指南 Day13: IO与文件处理】

Java的IO系统像是一个管道系统,负责数据的输入和输出。字节流:处理二进制数据字符流:处理文本数据。

2024-12-18 19:11:22 176

原创 【Java入门指南 Day12:Java集合框架】

Java集合框架像一个精心设计的工具箱,为不同的数据存储需求提供了专门的工具。

2024-12-18 19:06:41 390

原创 【Java入门指南 Day11:Lambda表达式与Stream API】

/ 可以有默认方法// 使用自定义函数式接口。

2024-12-18 19:01:10 576

原创 【Java入门指南 Day10:异常处理增强鲁棒性】

null &&!// getter方法// 使用示例"订单不能为空"try {"订单验证失败",e。

2024-12-17 15:00:00 336

原创 【Java入门指南 Day9:封装:Java访问控制与类设计】

封装就像是给类的成员加上不同级别的保护,就像我们保护自己的隐私一样,有些信息可以公开,有些需要保护。

2024-12-17 14:54:56 311

原创 【Java入门指南 Day8:多态,抽象类与接口】

/ 常量// 默认public static final// 抽象方法void fly();// 默认public abstract// 默认方法(Java 8+)System.out.println("正常降落");// 静态方法(Java 8+)

2024-12-17 14:48:36 143

原创 【Java入门指南 Day7:继承与组合用于代码复用】

继承是面向对象编程中实现代码复用的基本方式,它建立了类之间的"是一个"(is-a)关系。我们可以把它理解为类之间的父子关系,子类会继承父类的特征和行为。final关键字是Java中的一个多功能修饰符,可用于修饰类、方法和变量。组合表示"有一个"(has-a)关系,通过将其他类的对象作为成员变量来复用代码。理解继承和组合这两种代码复用机制,对于写出良好架构的代码至关重要。super关键字用于引用父类的成员,是连接子类和父类的桥梁。方法重写是子类对父类方法的重新实现。

2024-12-17 14:39:28 375

原创 【Java入门指南 Day6:面向对象编程的类和对象】

想象你在组织一个大型图书馆。面向对象编程就像是把图书馆中的每种事物(书籍、书架、读者、管理员)都看作一个独立的对象,每个对象都有自己的属性(如书的标题、页数)和行为(如借阅、归还)。

2024-12-17 14:32:23 355

原创 【Java入门指南 Day5:方法与递归深入解析】

让我们深入探索Java中方法的工作原理,从基础概念到高级特性,一步步理解这个重要的编程概念。

2024-12-16 14:47:39 401

原创 【Java入门指南 Day4:数组与字符串深入解析】

想象一下计算机的内存就像一个巨大的储物柜,里面有许多连续的小格子。数组就是在这个储物柜中预订一排连续的格子。当我们创建一个数组时,就相当于在这个储物柜中申请了一段连续的空间。

2024-12-16 14:40:09 441

原创 【Java入门指南 Day3:运算符与流程控制详解】

在下一篇文章中,我们将探讨数组和字符串的使用。在此之前,建议多练习本文中的流程控制结构,尤其是在实际问题解决中灵活运用它们。

2024-12-16 14:33:40 196

原创 【Java入门指南 Day2:数据类型与内存模型】

Java的类型系统是静态类型系统,这意味着所有变量在使用前必须声明类型。理解数据类型对于写出高效、安全的代码至关重要。

2024-12-16 14:27:13 195

原创 【Java入门指南 Day1: Java编程第一课】

Java语言诞生于1995年,由Sun公司(现已被Oracle收购)的James Gosling领导的团队设计开发。它的设计理念是"Write Once, Run Anywhere"(一次编写,到处运行)。JVM(Java Virtual Machine)是Java平台的基石,它提供了一个抽象的计算机环境。下一篇文章,我们将深入探讨Java的基本数据类型和变量系统。

2024-12-16 14:10:25 843

原创 前端开发入门指南Day 17:TypeScript高级类型(泛型,类型守卫,Partial<T>和 Required<T>等)

想象你是一个夜店保安,需要检查进入的人是否满足条件(年龄、着装等)。类型守卫就是代码世界的"保安",它帮助我们在运行时确保数据类型的正确性。// 定义可能的类型// 类型守卫函数// 使用类型守卫// TypeScript现在知道这是一只鸟console.log(`飞行速度:${animal.flySpeed}`);} else {// TypeScript知道这是一只狗console.log(`奔跑速度:${animal.runSpeed}`);

2024-12-05 15:05:05 342

原创 前端开发入门指南Day 16: TypeScript面向对象编程,像搭积木一样构建程序

想象你有一个蛋糕模具。这个模具定义了蛋糕的基本形状,但你可以用它制作很多个蛋糕。在编程中,类就是这个"模具",而对象就是用这个模具"烤"出来的"蛋糕"。// 类就像是一个蛋糕模具// 属性:蛋糕的特征// 口味// 尺寸// 是否装饰// 构造函数:制作蛋糕的配方// 方法:可以对蛋糕做的操作console.log("蛋糕已经装饰好了!");console.log(`这是一个${this.size}寸的${this.flavor}蛋糕`);// 使用模具制作蛋糕。

2024-12-05 14:53:56 468

原创 前端开发入门指南Day 15:TypeScript入门 - 从JavaScript到TypeScript

为什么需要TypeScript? 🤔JavaScript最初是为了在网页中添加简单的交互效果而设计的。但随着Web应用变得越来越复杂,我们用JavaScript构建的应用规模也越来越大:从简单的表单验证发展到完整的企业级应用。想象一下,你正在建造一座大楼,如果你使用的是JavaScript,就像是在用积木搭建 - 虽然灵活,但当建筑变得复杂时,很容易出错。而TypeScript就像是给这些积木加上了榫卯结构(限定了每一块的作用) - 它能确保每块积木都正确地咬合在一起。让我们通过一个简单的例子来

2024-12-05 14:46:08 655

原创 前端开发入门指南Day 14 :数据交互(从Ajax到Axios)和工具进阶(JSON、代理、正则表达式)

HTTP请求Ajax是基础,Axios是现代解决方案异步请求让页面交互更流畅JSON前后端数据交换的标准格式简单易用,人机都可读注意数据类型的转换Proxy优雅地监控数据变化可以用于表单验证这些工具结合使用,能让我们的前端开发更加高效和稳健!

2024-11-30 20:24:00 464

原创 前端开发入门指南Day13:异步编程:从回调到Promise再到async/await

回调函数阶段(~2010)优点:简单直接缺点:回调地狱、错误处理困难Promise阶段(2015~)优点:链式调用、统一错误处理缺点:仍需要then链async/await阶段(2017~)优点:同步代码风格、直观易读缺点:需要注意await的阻塞性每一次技术演进都是为了让异步编程变得更简单、更可靠。理解这个演变过程,能帮助我们更好地选择合适的技术方案。

2024-11-30 20:12:30 281

原创 前端开发入门指南Day12:ES6进阶:面向对象的编程(Class类、继承、模块化)

今天,让我们探索ES6中面向对象编程的革新。想象一下,如果传统的JavaScript是一个手工作坊,那么ES6的类和模块化就是一个现代化工厂,让代码的组织和复用变得更加规范和高效。

2024-11-30 20:01:29 422

原创 前端开发入门指南Day11: ES6基础:更简洁优雅的代码(变量、模版字符串、箭头函数、解构赋值、展开运算符)

优先使用const,只在需要改变变量值时使用let箭头函数中的this指向与普通函数不同,要注意使用场景解构赋值可以大大简化代码,但要避免过度使用模板字符串中可以使用任何JavaScript表达式ES6带来的这些新特性让JavaScript变得更加强大和易用。欢迎在评论区共同讨论!

2024-11-30 19:53:36 430

原创 前端开发入门指南Day10: BOM:浏览器窗口的控制(Location对象、定时器函数、本地存储)

你有没有想过,当我们使用浏览器时,是如何控制窗口大小、获取屏幕信息、存储数据的呢?今天,让我们一起探索浏览器对象模型(Browser Object Model,简称BOM)的世界!

2024-11-30 19:44:11 314

原创 前端开发入门指南Day 9:DOM探索:与网页元素的对话(选择器查找、修改,事件处理)

这是一座美丽的城市

2024-11-30 19:38:01 243

原创 前端开发入门指南Day 8:JavaScript的函数(创建和使用、作用域、闭包)

函数就像是一个包装好的"操作包",它可以帮我们把一系列操作打包起来,需要时随时使用。这就像我们把"刷牙-洗脸-梳头"这些动作打包成"早上的事务"一样。// 没有使用函数时,每次打招呼都要写三行代码console.log("你好!");console.log("今天天气真好!");console.log("欢迎来到JavaScript世界!");// 使用函数后,封装成一个简单的"打招呼"包console.log("你好!");console.log("今天天气真好!");

2024-11-30 19:30:57 201

原创 前端开发入门指南Day 7:JavaScript初识:让网页活起来的魔法

小伙伴们,想象一下如果网页是一个精心布置的舞台,那么HTML就是搭建的道具,CSS是精美的装饰,而JavaScript就是让这个舞台充满魔力的魔法师。今天,让我们一起揭开JavaScript的神秘面纱。✨。

2024-11-30 19:19:53 145

原创 前端开发入门指南Day 6:Grid布局与动画特效

* 固定宽度 *//* 百分比 *//* fr单位(份数) *//* 混合单位 *//* repeat函数 *//* 自动填充 *//* 固定高度 *//* 自动高度 *//* 最小最大值 */掌握网格系统的基本概念熟练使用grid-template-columns和grid-template-rows理解grid-area的使用掌握响应式Grid布局。

2024-11-22 20:46:47 244

原创 前端开发入门指南Day 5:定位与Flexbox布局

理解不同定位方式的特点掌握定位元素的参考系灵活运用z-index控制层级合理使用透明度。

2024-11-22 20:13:31 844

空空如也

空空如也

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

TA关注的人

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