- 博客(35)
- 资源 (1)
- 收藏
- 关注
原创 迷宫问题,最短路径算法,非递归循环实现
迷宫问题多数解法都是使用递归,但递归对于算法还是有要求的,如果时间复杂度不是O(log n)那么还是不建议使用因为当问题规模较大时,每次递归无法将规模指数级缩减那么总递归次数就会很多,会有爆栈的风险例如所以,能用循环解决的还是用循环吧...........................
2022-06-10 16:18:58
589
原创 Pycharm中自定义代码配色方案,背景图片
1.点击右上角齿轮,进入Settings2.Editor > Color Scheme > Python(当然不止可以配置Python代码CSS,HTML,JSON都可以)这里是IDE提供的一些默认方案除了方案本身的编辑器背景色无法更改可以为每一种默认方案选择自己喜欢的字体风格背景图片设置双击Shift键打开全局搜索,直接搜索set background image最后附上背景图片...
2022-05-24 16:46:12
3208
原创 异位词算法(巧用质数性质)
# 逆位词的判断# 逆位词: abc与cba cat与tea 即一方的字母可以由另一方字母改变排列顺序得到# 最简单的实现思路:# 暴力查找,直接将一方全体字符依次与另一方全体对比,如果全部成立,则判定为真# 注意事项: 1.两词的长度不一致时直接判定为假# 2.查找对比成功时要注意字符的下标值,例如aaa和abc,aaa中的(任意字符 in abc)都# 会获得True的结果,但aaa和abc并不是一对逆位词。# 解法2:将其中一方进行排序, 排序完成后比较是否相同即可# 测试用
2022-04-18 15:15:54
322
原创 密码组合算法
import typingdef compound_mode(suq:typing.Iterable, length: int = 1) -> list[str]: """ :param suq: 待组合的元素,将其视作密码所用到所有可能的字符 :param length: 密码长度 :return: 所有可能的密码 """ ''' 实现思路: 先从最简单的一位数密码入手,获得所有可能的组合。 然后将第二位所有可能出现的字符与前边的
2022-03-11 11:20:44
1918
原创 Python中使用循环的几个小细节
import timer = range(2 << 20)r_iter = iter(r)b = time.time()# while0while True: try: i = next(r_iter) except Exception: breakprint(time.time() - b)count = 0l = len(r)b = time.time()# while1while count < l:
2021-10-03 11:13:06
167
1
原创 谈谈Python中的《面向对象》
"""Python支持面向对象,但我个人还是将其作为一门脚本语言使用,充分发挥其特性。Python中的面向对象操作手感和其他编译型语言(如C++, Java)差别还是较大的,我总结整理了一部分使用心得,供各位参考"""import jsonimport sysfrom threading import Threadclass Test: """ 直接声明在类中的变量为"类变量",可以直接通过类名调用 注意,刚初始化的对象中的类变量xx统一指向类中的xx
2021-09-20 17:45:37
166
原创 Python turtle画月饼
import turtle as tdef goto(x, y): t.penup() t.goto(x, y) t.pendown()def draw_edges(x, y, color): count = 20 length = 210 t.color(color) goto(x, y) for foo in range(count): t.right(360 / count) t.begin_f
2021-09-20 14:54:30
423
原创 Python15行代码实现简易交互式命令行
while True: cmd = input('>>> ') last = cmd[-1] while last == ':' or last == '\\': temp = input('... ') cmd += temp last = cmd[-1] try: res = eval(cmd) print(res) except BaseException as e
2021-09-16 21:31:36
371
原创 Python中数组(array)与列表(list)的对比
import array as arr # (1)import randomimport timefrom array import array# 获取包含可用类型码的字符串, 各类型码详细信息键下方文档注释codes = arr.typecodesprint(codes)# 使用array模块下的array类构建一个数组# 参数列表: 类型码, 初始化器 (其中初始化器为可迭代对象,官方文档说其必须为列表)a = array('i', range(101))# array类的重
2021-09-05 16:13:27
588
原创 Numpy数组入门
import numpy as np# 传递一个可迭代对象生成一个数组 类似list(iter)# 数组存在元素类型统一的机制,类似Java集合中的泛型# array的参数列表:(可迭代对象, dtype=None) 若不指定关键字参数dtype则会根据迭代对象中的成员# 自动分配数据类型arr = np.array(range(10))print(arr)# numpy提供了比python内置的数据类型更丰富的结构# 调用dtype属性已查看该数组元素对应的C语言中的一些数据类型ty
2021-09-04 20:53:26
154
原创 Jedis连接Linux中的Redis,能踩的坑都在这里了
首先,Redis的配置文件,这个不用说保护模式关掉 protected-mode no只允许本机访问注释掉 #bind 127.0.0.1 ::1关掉!关掉!一定要关掉防火墙关掉 systemctl stop firewalld.serviceCentos7下的对服务操作要使用systemctlsystemctl status(查看状态) | start(启动) | reboot(重启) | stop(关闭) 服务名.service启动sshd服务:systemctl start sshd.
2021-05-12 17:24:51
228
原创 Java根据包名获取类实例
package com.snakeT;//import org.junit.jupiter.api.Test;import org.junit.jupiter.api.Test;import java.io.File;import java.net.URL;import java.util.ArrayList;import java.util.List;public class PackageTest { @Test public void test() throws
2021-04-30 09:05:09
812
原创 原生JDBC常用API整理
package com.snake;import org.junit.jupiter.api.Test;import java.lang.reflect.Field;import java.net.URL;import java.sql.*;import java.util.ArrayList;import java.util.List;public class JDBCTest { private Connection connection; /*声明连接数据库必要
2021-04-29 14:36:04
188
原创 Java Web request与response的常用API整理
@WebServlet(name = "FirstServlet",urlPatterns = {"/hello"})public class FirstServlet extends HttpServlet { @Override /** * 当请求方式为Post时,服务器会调用doPost方法 * Post方式提交的数据是私密的不可见的,同时可以携带大量的信息 * */ protected void doPost(HttpServletReque
2021-04-28 20:34:20
425
原创 Java 异常处理机制
/*** * _ooOoo_ * o8888888o * 88" . "88 * (| -_- |) * O\ = /O * ____/`---'\____ * . ' \\| |// `. * / \\||| : |||/
2021-04-28 09:39:04
139
原创 Java中泛型的应用示例
public class GenericityTest { java.util.ArrayList arr; /*泛型 JDK 5引入 * 适用于多种类型执行同一代码 * 在使用前就可以确定参数类型,不需要转换,通常运用最广泛的是集合中 * 指定泛型参数,就可以统一集合元素类型,使得存取更加便捷*/ /*自定义泛型 * 泛型参数名称可以任意 * 通常使用的有:T Type,E Element,K Key,V Value,*/ cl
2021-04-27 15:38:14
267
原创 Java 反射,超全面的API示例
public class ClassTest { private volatile int i; public String s; protected char c; static int[] ints = {1,2,3}; private ClassTest(){ } public ClassTest(int i){ this.i = i; } private class InnerClass{}
2021-04-27 11:18:08
237
1
原创 Java中自定义注解的应用
/*** * .::::. * .::::::::. * ::::::::::: * ..:::::::::::' * '::::::::::::' * .:::::::::: * '::::::::::::::.. * ..::::::::::::. * ..
2021-04-26 16:57:22
141
原创 Java NIO 网络编程
测试测试开发写给测试的测试软件该用什么测试软件去测试?读完这个问题时你已经对 测 这个字感到陌生了@Test void client() throws IOException { Path path = Paths.get("banner.txt"); ByteBuffer buffer = ByteBuffer.allocate((int)path.toFile().length()); FileChannel fc = FileChannel.
2021-04-26 13:50:00
102
原创 Java NIO对本地文件的操作
@Test void test() { /*Java NIO * 字节缓冲区:ByteBuffer (内部使用字节数组存储数据) * 构建一个指定长度的ByteBuffer*/ ByteBuffer buffer = ByteBuffer.allocate(1024); /*其中Buffer中的重要属性 private int position = 0; //指针,表示当前正在操作数据的索引位置
2021-04-23 15:12:38
257
原创 Java中集合的使用
@Test void test() { /*单列集合的根接口*/ Collection c = null; /*List集合*/ /*ArrayList, 内部使用数组来存储数据,有序,允许存在重复值和null 在构建时尽可能的传递参数作为数组的初始长度 和指定泛型来统一元素类型 * */ ArrayList<String> list ...
2021-04-22 18:57:13
118
原创 Java对超大数值的处理
public class BigIntegerTest { @Test void test(){ /*传递一个纯数字格式的字符串构造一个BigInteger*/ BigInteger b1 = new BigInteger("10"); BigInteger b2 = new BigInteger("2"); /*或者可以指定一个n进制数格式的字符串 * 此时字符串中就只能包含0和1*/ Bi
2021-04-22 10:07:49
605
原创 Java 8新特性-Stream运算
@Test void test(){ List<String> strings = Arrays.asList("1234567","222333","a","","B"); List<Integer> ints = Arrays.asList(1,2,3,10,0); /*Java 8之后在Collection接口中新增的方法 * 允许以声明式的代码来处理数据 * 使用stream将集合转为一
2021-04-21 21:21:07
1209
原创 Java中多线程和自定义线程池
public class Threads { volatile int num; int num2; @Test void test() throws InterruptedException { /*开启一个新线程最简单的方法,继承Thread类,重写run方法*/ new Thread(){ @Override public void run() { Sy
2021-04-21 15:53:53
130
原创 Java 8中提供的日期API
@Test void test() { /*java.util.Date*/ /*构建一个包含当前系统时间的Date*/ Date date = new Date(); /*构建一个自1970-01-01 00:00:00开始之后经过指定毫秒的Date * 无参构造器实际实际上是调用了此构造器,并将System.currentMilleTimeMillis()当做参数传递了进去 * 如下*/ ..
2021-04-20 22:06:09
102
原创 Java中未知类型数组的操作
@Test void test5() { /*如何在判断一个实例是否是数组,并怎样将其元素遍历出来?*/ int i = (int) (Math.random() * 3); Object o = i == 0 ? new byte[]{1, 2, 3} : i == 1 ? new String[]{"1", "2", "3"} : ""; /*判断实例类型这个不用多想,用反射*/ Class c = o.ge...
2021-04-20 13:19:51
737
原创 Java中数组中的深拷贝与浅拷贝
@Test void test4(){ /*源数组*/ byte[] bys = {11,22,33}; /*目标数组*/ byte[] bys2 = new byte[bys.length]; /*通常将一个数组的元素复制到另一个数组的方法-用循环遍历*/ try { for(int i=0;;i++){ bys2[i] = bys[i];...
2021-04-20 10:32:36
245
原创 String,StringBuffer和StringBuilder
先来一道面试题吧/*以下Java代码会在运行时内存中开辟几块空间*/String s = "a"+"b"+"c";/*事实是恒为一块,因为编译器在编译时会对其做优化在反编译的字节码码文件中你看到的应该是这样*/String s = "abc";/*有些问题多看看生成的字节码文件就解决了,因为最终执行的是class文件而不是java文件*/好下面进入正题这三种字符串存储字符用的都是char[],这一点没什么好说的直接将char型数组传递到打印流里得到的是所有元素拼接到一起的具体内容而
2021-04-19 11:21:03
90
原创 Spring加载Bean的顺序
在某次操作中,我想给组件加载时添加一点功能,这个应该在无参构造器中实现,但我去调用其中一个属性时却报了空指针异常。很诧异,这个属性已经使用自动注入注解了,他怎么能是个空呢?做个测试在Application.yml配置文件中先给一个初始值sal:empNo: 100测试类如下,是用MyBatis-plus生成的@Data@EqualsAndHashCode(callSuper = false)@TableName("sal")@ConfigurationProperties(prefix =
2021-04-17 23:27:01
147
原创 Java 8 新特性-Lambda表达式
代码总是朝着简洁清爽的方向发展,Lambda表达式是个很好的示例另外还有LomboxLambda表达式的使用:public class Test2 { /*注意这几个接口和类,因为待会他们大有作为*/ interface Math { long sum(int a,int b) throws RuntimeException; } static class LambdaDemo{ static long sum1(int a, int b){
2021-04-17 13:30:12
115
原创 Spring中AOP的实现demo
刚入手Spring时感觉还好,凭借学到的反射和注解还能大致推断出底层的实现流程,但到AOP这一块的时候就感觉很迷了,为什么我调用的方法返回值发生了改变,为什么自己new的又不会了。。。后来了解到CGLIB这种技术才慢慢解开了我的疑惑,这也是代码为什么可以一致直吸引我的地方,因为她可以满足洒家的欲望(求知欲)行了不bb了,上代码首先是CGLIB的依赖<dependency> <groupId>cglib</groupId> <art
2021-04-16 22:43:37
183
原创 Java中的序列化与反序列化
public class Test1 { public static void main(String[] args) throws IOException, ClassNotFoundException { test(); } static void test() throws IOException, ClassNotFoundException { byte[] bytes; /*在try(...)中的AutoCloseab.
2021-04-16 11:55:29
103
原创 Java高逼格遍历数组的方式
在普通for循环遍历或取数组元素或做其他操作时,总会以将要超出数组最大索引作为循环结束的标志,也就是说每一次循环都要去判断此条件是否满足而forEach强就强在它无需这一步流程,所以效率要高但在今天我无意写出了一种这样的遍历方式,如下```javaint[] test = new int[500000000]; long begin = System.currentTimeMillis(); try { for (int i = 0; ; i
2021-04-16 10:15:18
222
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人