- 博客(45)
- 资源 (2)
- 收藏
- 关注
原创 python在数据库有自增id的情况下,向数据库插入不重复数据(除id外其余相同的数据被视为重复数据)
目前有一张表,主键和索引都是id,int类型且自增,我的代码每十分钟扫描一次数据,将这十分钟内新增的数据添加到数据库,但是由于执行代码需要时间,只扫描十分钟的数据会产生遗漏数据,所以暂定为扫描十一分钟的数据,由此会有少部分的重复数据被导入数据库。经过评判,暂定方法一,因为方法二消耗资源过多,加大负载,同时导入重复数据本就逻辑上不够完善。最终敲定了这个方法:在每条数据导入时,先采用exists方法判断是否存在,如果存在就导入,否则忽略,这个方法也有一定的资源消耗,总体来说还算是较优的。
2022-10-14 13:34:42 916 2
原创 <LeetCode力扣>2124. 检查是否所有 A 都在 B 之前
给你一个 仅 由字符 ‘a’ 和 ‘b’ 组成的字符串 s 。如果字符串中 每个 ‘a’ 都出现在 每个 ‘b’ 之前,返回 true ;否则,返回 false 。示例 1:输入:s = “aaabbb”输出:true解释: ‘a’ 位于下标 0、1 和 2 ;而 ‘b’ 位于下标 3、4 和 5 。 因此,每个 ‘a’ 都出现在每个 ‘b’ 之前,所以返回 true 。 示例 2:输入:s = “abab”输出:false解释: 存在一个 ‘a’ 位于下标 2 ,而一个 ‘b’ 位于下.
2022-05-09 10:36:46 1511
原创 <LeetCode力扣>88. 合并两个有序数组
给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。示例 1:输入:nums1 = [1,2,3,0,0,.
2022-04-30 00:01:51 231
原创 <LeetCode力扣>83. 删除排序链表中的重复元素
给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。示例 1:输入:head = [1,1,2]输出:[1,2] 示例 2:输入:head = [1,1,2,3,3]输出:[1,2,3] 提示:(1)链表中节点数目在范围 [0, 300] 内(2)-100 <= Node.val <= 100(3)题目数据保证链表已经按升序 排列===========================================.
2022-04-29 23:45:02 751
原创 <LeetCode力扣>70. 爬楼梯
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?示例 1:输入:n= 2输出:2解释:有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶 示例 2:输入:n = 3输出:3解释:有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 阶 提示: 1 <= n <= 45================================================.
2022-04-29 23:33:53 227
原创 <LeetCode力扣>20. 有效的括号
给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。 示例 1:输入:s = “()”输出:true 示例 2:输入:s= “()[]{}”输出:true 示例 3:输入:s = “(]”输出:false 示例 4:输入:s = “([)]”输出:false 示例 5:输入:s = “{[]}”输出:true 提示:1)1 <.
2022-04-29 23:13:57 245
原创 Java学习-Day23(IO流)
IO流文件什么是文件文件是保存数据的地方文件流文件在程序中是以流的形式来操作的流:数据在数据源(文件)和程序(内存)之间经历的路径输入流:数据从数据源(文件)到程序(内存)的路径输出流:数据从程序(内存)到数据源(文件)的路径常用的文件操作创建文件对象相关构造器和方法相关方法new File(String pathname)//根据路径构建一个File对象new File(File parent,String child)//根据父目录文件+子路径构建new
2022-04-29 00:08:47 163
原创 Java学习-Day22(线程)
线程基础概念程序程序是为完成特定任务、用某种语言编写的一组指令的集合。简单的说:就是我们写的代码进程1.进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存空间。当我们使用迅雷,又启动了一个进程,操作系统将为迅雷分配新的内存空间。2.进程是程序的一次执行过程,或是正在运行的一个程序。是动态过程 : 有它自身的产生、存在和消亡的过程线程1.线程由进程创建的,是进程的一个实体2.一个进程可以拥有多个线程其他1、单线程:同一时刻只允许执行一个
2022-04-27 23:58:50 843
原创 Java学习-Day21(泛型)
泛型使用传统方法出现的问题:不能对加入到集合ArrayList中的数据类型进行约束(不安全)遍历的时候,需要进行类型转换,如果集合中的数据量较大,对效率有影响//使用传统的方法来解决===> 使用泛型//老韩解读//1. 当我们 ArrayList<Dog> 表示存放到 ArrayList 集合中的元素是 Dog 类型 (细节后面说...)//2. 如果编译器发现添加的类型, 不满足要求, 就会报错//3. 在遍历的时候, 可以直接取出 Dog 类型而不是 Object
2022-04-26 16:37:09 556
原创 思特奇Java实习生面试
投递简历及笔试测评招聘流程:1、关注“思特奇校招”公众号—注册—推荐人/校招HR 选择:XXX—选择区域及岗位(如选择合肥 Java开发岗位)—简历投递—笔试、测评。2、面试3、offer沟通及发送4、入职报到。在上传完简历、做完笔试和测评之后,就进入面试了。值得吐槽的是,笔试有许多关于逻辑思维和理解能力的题,测评更离谱,分为ABCD四部分,A和B都是十道题,一个是看柱状图、表格计算收益增加率、预估明年这个月的收益、推算去年这个月的收益等,另一个完全是看图形找规律,我愿称之为公务员模拟考。C和
2022-04-26 10:13:39 2303 5
原创 Java学习-Day20(Set、Map、HashTable、Properties)
Set接口实现类——LinkedHashSet(HashSet的子类)基本介绍LinkedHashSet是 HashSet的子类LinkedHashSet底层是一个 LinkedHashMap(HashMap的子类),底层维护了一个数组+双向链表LinkedHashSet根据元素的 hashCode值来决定元素的存储位置,同时使用链表维护元素的次序(图),这使得元素看起来是以插入顺序保存的。(添加顺序和取出顺序一致)LinkedHashSet不允许添重复元素/*源码:添加第一次
2022-04-24 12:12:59 1119
原创 Java学习-Day19(集合、List、Vector、Set)
集合数组的不足:创建时长度必须指定,而且指定了不能更改保存的必须为同一类型的元素使用数组增加删除比较麻烦(数组扩容要新创建一个数组)集合:可以动态保存任意多个对象,使用方便提供了一系列方便的操作对象的方法:add、remove、set、get使用集合添加删除新元素的代码简洁集合的框架体系Java的集合类很多,主要分为两大类:单列集合双列集合Collection接口有两个重要的子接口 List Set,他们的实现子类都是单列集合Map接口实现的子类是双列集合,存放的K-
2022-04-23 23:49:57 923
原创 Java学习-Day18(包装类、String类、Math类、Arrays类)
常用类包装类(Wrapper)分类针对霸总基本数据类型相应的引用类型——包装类有了类的特点,就可以调用类中的方法基本数据类型包装类booleanBooleancharCharacterbyteByteintIntegerlongLongfloatFloatdoubleDoubleshortShortByte…Short,他们的父类都是Number包装类和基本数据类型的转换jdk5之前手动装箱和拆
2022-04-21 21:52:20 216
原创 Java学习-Day17(异常)
异常如果程序员认为一段代码可能出现异常/问题,可以使用try-catch异常处理机制来解决步骤:选中代码块->ctrl + alt + t ->选中try -catch如果进行了异常处理,即使出现了异常,程序可以继续执行基本概念Java语言中,将程序执行中发生的不正常情况称为异常(开发过程中的语法错误和逻辑错误不是异常)执行过程中所发生的异常事件可分为两大类:Error(错误)Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。比如栈溢出(S
2022-04-20 22:09:30 403
原创 Java学习-Day16(内部类、枚举、注解)
内部类基本介绍一个类的内部又完整的嵌套了另一个类结构,被嵌套的类称为内部类,嵌套其他类的类称为外部类,是我们类的第五大成员。内部类的最大特点就是可以直接访问私有属性,并且可以体现类与类之间的包含关系。(难且重要,底层源码有大量内部类)基本语法class Outer{ //外部类 class Inner{ //内部类 }}class Other{ //外部其他类 }内部类的分类定义在外部类的局部位置上(比如方法内):局部内部类(
2022-04-19 23:46:00 334
原创 <LeetCode力扣>67. 二进制求和
给你两个二进制字符串,返回它们的和(用二进制表示)。 输入为非空字符串且只包含数字 1 和 0。 示例 1:输入: a = “11”, b = “1”输出: “100” 示例 2:输入: a = “1010”, b = “1011”输出: “10101” 提示:(1) 每个字符串仅由字符 ‘0’ 或 ‘1’ 组成。(2)1 <= a.length, b.length <= 10^4(3)字符串如果不是 “0” ,就都不含前导零。=====================.
2022-04-18 19:18:21 77
原创 Java学习-Day15(final、接口)
final关键字final可以修饰类、属性、方法和局部变量在某些情况下,程序员可能有以下需求,就会使用到final:当不希望类被继承时,可以用final修饰.当不希望父类的某个方法被子类覆盖/重写(override)时,可以用final关键字修饰。当不希望类的的某个属性的值被修改,可以用final修饰当不希望某个局部变量被修改,可以使用final修饰注意事项和细节:final修饰的属性又叫常量,一般用XX_XX_XX来命名final修饰的属性在定义时,必须赋初值,并且以后不能再
2022-04-18 18:40:51 87
原创 Java学习-Day14(静态方法、main方法、代码块、单例设计模式)
类方法(静态方法)形式如下访问修饰符 static 数据返回类型 方法名(){} 推荐static 访问修饰符 数据返回类型 方法名(){}类方法调用类名.类方法名 或者 对象名.类方法名当方法使用了static修饰后,该方法就是静态方法静态方法就可以访问静态属性/变量使用场景:当方法中不涉及到任何和对象相关的常用,则可以将方法设计成静态方法,提高开发效率注意事项和细节类方法和普通方法都是随着类的加载而加载,将结构信息存储在方法区;类方法中无this的参数,普通
2022-04-18 12:16:25 259
原创 <LeetCode力扣>58. 最后一个单词的长度
给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。示例 1:输入:s = “Hello World”输出:5解释:最后一个单词是“World”,长度为5。示例 2:输入:s = " fly me to the moon "输出:4解释:最后一个单词是“moon”,长度为4。 示例 3:输入:s = “luffy is still joyboy”输出:6解释:最.
2022-04-16 17:32:59 216
原创 <LeetCode力扣>53. 最大子数组和(DP)
给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [5,4,-1,7,8]输出:23 提示:(1) 1 <= nums.length <= 105(2) -10.
2022-04-16 17:18:20 421
原创 <LeetCode力扣>35. 搜索插入位置(快排)
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2 示例 2:输入: nums = [1,3,5,6], target = 2输出: 1 示例 3:输入: nums = [1,3,5,6], target = 7输出: 4 提示:1)1 <= nums.length <.
2022-04-16 00:11:48 328
原创 <LeetCode力扣>21. 合并两个有序链表(递归)
将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 =1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0] 提示:1)两个链表的节点数目范围是 [0, 50]2)-100 <= Node.val <= 1003)l1 和 l2 均按 非递减顺序 排列=====.
2022-04-15 23:54:44 251
原创 <LeetCode力扣>28. 实现 strStr()
实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。 对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与 C 语言的 strstr() 以及 Java 的 indexOf() 定义相符。示例 1:输入:haystack = “hell.
2022-04-15 23:39:07 126
原创 Java学习-Day13(静态变量)
类变量(静态变量)static变量是同一个类所有对象共享static类变量在类加载的时候就生成了,不创建对象也可以访问什么是类变量类变量也叫静态变量/静态属性,是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量。如何定义类变量访问修饰符 static 数据类型 变量名;(推荐)static 访问修饰符 数据类型 变量名;如何访问类变量类名.变量名(推荐)对象名.类变量名(静态变量的访问修饰符权
2022-04-15 23:09:13 795
原创 <LeetCode力扣>125. 验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: true解释:“amanaplanacanalpanama” 是回文串示例 2:输入: “race a car”输出: false解释:“raceacar” 不是回文串 提示:1)1 <= s.length <= 2 * 10^52)字符串 s 由 AS.
2022-04-14 00:16:14 396
原创 Java学习-Day12(动态绑定机制、Object类方法)
多态习题小结调用属性看编译类型,调用方法看运行类型java的动态绑定机制(重要)当调用对象方法的时候,该方法会和该对象的内存地址/运行类型绑定当调用对象属性时,没有动态绑定机制,哪里声明哪里使用(在哪个类里调用就用哪个类里的属性)简而言之,只要是调用方法,先去看运行类型是否有,如果有,直接使用;若没有,再找编译类型多态的应用多态数组数组的定义类型为父类类型,里面保存的实际元素类型为子类类型多态参数方法定义的形参类型为父类类型, 实参类型允许为子类类型Object类
2022-04-10 20:53:55 258
原创 <LeetCode力扣>14. 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。 示例 1:输入:strs =[“flower”,“flow”,“flight”]输出:“fl” 示例 2:输入:strs = [“dog”,“racecar”,“car”]输出:“”解释:输入不存在公共前缀。 提示:1 <= strs.length <= 2000 <= strs[i].length <= 200strs[i]仅由小写英文字母组成==========.
2022-04-10 00:21:05 292
原创 Java学习-Day11(多态、向上转型、向下转型)
多态背景:代码的复用性不高,而且不利于代码维护介绍:方法或对象具有多种形态,是面向对象的第三大特征,多态是建立在封装和继承基础上的多态的具体体现:方法的多态:重载和重写体现多态对象的多态:一个对象的编译类型和运行类型可以不一致Animal animal = new Dog();//animal编译类型是Animal,运行类型是Dog 编译类型在定义对象时,就确定了,不能改变运行类型是可以变化的animal = new Cat();//animal的运行类型变成了
2022-04-09 23:41:51 149
原创 Java学习-Day10(包、访问修饰符、继承、super、重写)
包包的三大作用:区分相同名字的类当类很多时,可以很好的管理类控制访问范围包基本语法:package com.wanlaizhoupackage 关键字,表示打包com.wanlaizhou 表示包名包的本质分析(原理)包的本质就是创建不同的文件夹/目录来保存类文件包的命名:命名规则:只能包含数字、字母、下划线、小圆点,但不能以数字开头,不能是关键字或保留字命名规范:小写字母+小圆点一般是com.公司名.项目名.业务模块名如:com.sina.crm.user
2022-04-08 22:24:21 247
原创 Java学习-Day09(IDEA快捷键、模板)
IDEA快捷键删除当前行:CTRL + Y复制当前行:CTRL + D补全代码:ALT + /添加注释/取消注释:CTRL + /快速格式化代码:CTRL + ALT+ L快速运行程序:自己定义,搜run生成构造器: ALT + INSERT查看类的层级关系:CTRL + H光标放方法上,快速定位方法:CTRL + B自动分配变量名:后面加.varnew Scanner(System.in).var//相当于 Scanner scanner = new Scanner(System
2022-04-04 00:11:10 246
原创 Java学习-Day08(作用域、构造方法、this关键字)
作用域在java编程中,主要的变量就是属性(成员变量)和局部变量局部变量一般是指才成员方法中定义的变量java中的作用域的分类:全局变量:也就是属性,作用域为整个类体局部变量:也就是除了属性之外的其他变量,作用域为定义它的代码块中全局变量(属性)可以不赋值,直接使用,因为有默认值。局部变量必须赋值后才能使用,因为没有默认值。注意事项和细节:属性和局部变量可以重名,访问时遵循就近原则在同一个作用域中,两个局部变量不能重名属性生命周期较长,伴随着对象的创建而创建,伴随着对象的销毁
2022-04-02 23:20:36 436
原创 Java学习-Day07(类与对象构建流程、this关键字、重载)
类与对象对象(属性、行为)类是抽象的、概念的,代表一类事物,即它是数据类型对象是具体的,实际的,代表一个具体事务,是实例类是对象的模板,对象是类的一个个体,对应一个实例对象在内存中的存在形式:jdk1.8 常量池位置有所变动,不再深究。属性=成员变量=field属性是类的一个组成部分,一般是基本数据类型,也可以是引用类型(对象、数组)属性注意事项和细节:访问修饰符 属性类型 属性名;public/private/protected/默认属性的类型可以为任意类型,可以
2022-04-01 23:43:50 478 2
原创 Java学习-Day06(数组)
数组数组可以存放多个同一类型的数据,数据也是一种数据类型,是引用类型。即:数组就是一组数据。array.length => 数组长度动态初始化 int a[] = new int [5];动态初始化 int a[]; //或者 int[] a; a = new int [10];静态初始化 int a[] = { 1,2,3,4,5,6,7,8,9 };相当于先new再赋值注意事项和细节:数组是多个相同类型数据的组合,实
2022-03-31 18:18:08 449
原创 Java学习-Day05(控制结构:顺序分支循环)
控制结构顺序控制程序从上到下逐行执行,中间没有任何判断和跳转Java中定义变量时采用合法的前向引用(先定义再使用)分支控制if-else单分支if(条件表达式){}双分支if(条件表达式){}else{}多分支if(条件表达式1){}else if(条件表达式2){}else if(条件表达式3){}else{}嵌套分支(不要超过三层)switch分支switch(表达式){case 常量1:语句块1;break;case 常量2:语句块2;br
2022-03-30 22:48:10 735
原创 Java学习-Day04(进制转换与运算符)
进制二进制0b或者0B十进制八进制以0开头表示十六进制0x或0X,A-F不区分大小写进制的转换二转十从最低位开始,将每个位上的数提取出来,乘以2的(位数-1)次方,求和八转十从最低位开始,将每个位上的数提取出来,乘以8的(位数-1)次方,求和十六转十从最低位开始,将每个位上的数提取出来,乘以16的(位数-1)次方,求和十转二将该数不断除以2,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制十转八将该数不断除以8,直到商为
2022-03-29 23:43:12 134
原创 Java学习-Day03(运算符)
在java中取模的本质 a % b = a - a / b * b&&短路与: (开发常用)前面的条件为false,后面的条件不执行不判断,效率高&逻辑与:前面的条件为false,后面的条件仍然会判断执行,效率低||短路或:(开发常用)前面的条件为true,后面的条件不执行不判断,效率高|逻辑或:前面的条件为true,后面的条件仍然会判断执行,效率低!取反:T->F,F->T^逻辑异或: 相同为真,不同为假赋值运算符:= , += , -.
2022-03-29 11:14:41 4378
原创 Java学习-Day02(类型转换)
自动类型转换int n1 = 10;float d1 = n1 + 1.1 ; //❌ 1.1是double类型,转为float精度会丢失精度大→精度小:报错精度小→精度大:自动转换(byte,short)和char之间不会自动转换byte:-128~+127byte b1=10;//当把数赋值给byte时,先判断该数是否在byte范围内,如果是就可以赋值byte b1 = 10; int n2 = 1; byte b2 = n2? //如果是变量赋值,直接判断char c
2022-03-29 11:10:23 328
原创 Markdown编辑工具Typora-0.11.18(官方最后一个免费版)
官网:Typora — a markdown editor, markdown reader.官网免费版:https://www.typora.io/windows/dev_release.html百度网盘:链接:https://pan.baidu.com/s/18OxXWt3B7muwoT5JXeLefw 提取码:hlnr阿里云盘:「typora_0.11.18_64bit_setup.exe」https://www.aliyundrive.com/s/TeoTLNdJEXm免费版仅供学.
2022-03-11 15:44:52 7473 3
原创 <LeetCode力扣>27. 移除元素
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝int
2022-03-10 23:38:03 69
原创 <LeetCode力扣>2148. 元素计数
给你一个整数数组 nums ,统计并返回在 nums 中同时至少具有一个严格较小元素和一个严格较大元素的元素数目。示例 1:输入:nums = [11,7,2,15]输出:2解释:元素 7 :严格较小元素是元素 2 ,严格较大元素是元素 11 。元素 11 :严格较小元素是元素 7 ,严格较大元素是元素 15 。总计有 2 个元素都满足在 nums 中同时存在一个严格较小元素和一个严格较大元素。示例 2:输入:nums = [-3,3,3,90]输出:2解释:元素 3 :严格较小元素是元
2022-03-09 23:18:46 573
FastStoneCapturePortable.rar
2022-03-24
Bongo Cat.rar
2022-03-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人