摘要: 算法-回溯算法思想 1. 回溯算法的基本概述 什么是回溯算法?回溯算法,本质上就是 回溯 = 递归 + 状态恢复 + 剪枝 它是一种暴力搜索的优化形式,通过“尝试 -> 撤销”来穷举所有可能解,并在过程中剪枝无效分枝 2. 回溯适用的算法题目 场景 典型关键词 示例题目 组合/子集/排列 “所有可能 阅读全文
posted @ 2025-11-16 23:07 Cherry_Shen 阅读(2) 评论(0) 推荐(0)
摘要: 二分查找算法 二分查找算法的核心就是在查找的一堆有序数据中,使用\(\log_n\)的时间复杂度进行查找,最基本的算法代码如下: public static int binarySearch(int[] a, int target) { if (a.length == 0) return -1; i 阅读全文
posted @ 2025-08-02 01:03 Cherry_Shen 阅读(12) 评论(0) 推荐(0)
摘要: 如何快速求一个整数使用二进制表示时1的个数? 这里给出一个很简单的方法,首先看代码: public int findBin1Count(int n) { int res = 0; while (n != 0) { if ((n & 1) == 1) res++; n >>= 1; } return 阅读全文
posted @ 2025-02-19 22:23 Cherry_Shen 阅读(24) 评论(0) 推荐(0)
摘要: MySQL中统计字符串中字符个数的两个函数: char_length(column_name):计算单位是字符,不管是汉字还是字母都算是一个字符,例如: select char_length('abcd1234你好') -- 结果为: 10 length(column_name): 对于length 阅读全文
posted @ 2025-01-19 22:26 Cherry_Shen 阅读(295) 评论(0) 推荐(0)
摘要: Llinux系统正确关机的姿势 在Linux程序里,有很多程序或者说是服务都是在背景下执行的,可能在背景的后面会有很多任务在工作,如果直接按下电源键,内存中的数据可能会来不及同步到硬盘中导致数据丢失。除此之外,如果不是正常关机,则可能会造成 文件系统的损坏,因此,在关机的时候需要注意以下几件事: 1 阅读全文
posted @ 2025-01-06 22:52 Cherry_Shen 阅读(156) 评论(0) 推荐(0)
摘要: 面向对象程序设计的五大原则 1. 单一职责原则 就一个类而言, 应该仅有一个引起它变化的原因。 如果一个类承担的职责太多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其它职责能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。如果能够想到多于一个的动机 阅读全文
posted @ 2024-10-30 10:59 Cherry_Shen 阅读(88) 评论(0) 推荐(0)
摘要: 设计模式 - 策略设计模式 策略设计模式(Strategy Pattern)是一种行为设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以互相替换。这种模式让算法独立于使用它的客户端。简而言之,策略模式允许在运行时更改算法的行为。 策略模式的组成部分: Context(上下文): 上下文指 阅读全文
posted @ 2024-10-29 19:43 Cherry_Shen 阅读(40) 评论(0) 推荐(0)
摘要: 设计模式 - 代理模式 代理设计模式(Proxy Design Pattern) 是创建型设计模式的一种,它提供了一个代理对象来控制对一个真实对象的访问。这个设计模式的主要目的是为了在不需要修改客户端代码的情况下,给某个对象提供一个代替接口。代理模式通常用来实现延迟加载、虚拟代理、远程代理等功能。下 阅读全文
posted @ 2024-10-29 19:16 Cherry_Shen 阅读(36) 评论(0) 推荐(0)
摘要: MongoDB简介 1. NoSQL 简介 NoSQL(Not Only SQL),意思为“不仅仅是 SQL”。通常指的是非关系型数据库。 NoSQL 通常适用于超大规模的数据存储,这是因为关系属性数据并不能很好的处理大规模数据。 NoSQL 数据库常见的主要分为如下两种,也是我们在开发中经常遇见的 阅读全文
posted @ 2024-10-29 11:08 Cherry_Shen 阅读(39) 评论(0) 推荐(0)
摘要: 贪心算法案例 - 分发糖果(Hard) 1. 题目描述 n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。你需要按照以下要求,给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。 相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩子分发糖果,计算并返回需要准备的 最 阅读全文
posted @ 2024-10-27 18:31 Cherry_Shen 阅读(110) 评论(0) 推荐(0)