- 博客(21)
- 问答 (2)
- 收藏
- 关注

原创 力扣题解:1.两数之和(Python版)
力扣第一题:两数之和一、题目描述二、暴力解法1、具体代码(题解写法)2、具体代码(完整写法)三、哈希表四、总结一、题目描述给定一个整数数组 nums和一个整数目标值target,请你在该数组中找出和为目标值 target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。这是小赵同学在刷力扣的时候遇到第一个问题,万事开头难,通过查阅资料和看视频终于解决这个问题。对于这个问题,我想出了两种解法:二、暴力解法1、
2021-08-20 14:12:14
830
原创 Java小项目:模拟实现用户在银行的存取款功能
文章目录一、问题描述二、具体代码1、Account类2、Customer类3、Bank类4、BankTest类三、图解类的关系关系梳理四、运行结果一、问题描述编写一个程序,程序有四个类:1、Account管理用户的余额,实现存钱和取钱的功能。2、Customer设置用户的姓名,绑定其Account信息。3、Bank实现添加用户、统计用户数量、获取指定索引的用户信息等功能4、BankTest创建多个用户完成用户存钱、取钱等操作。二、具体代码在这个项目里,我把四个类分别写在四个不同的Java文件
2021-12-10 13:50:13
4155
原创 力扣题解:1941. 检查是否所有字符出现次数相同(Java)
文章目录一、题目描述二、解题方法1、解题思路2、具体代码3、知识点三、总结一、题目描述给你一个字符串s ,如果s是一个“好”字符串,请你返回 true ,否则请返回 false 。如果s中出现过的所有字符的出现次数相同 ,那么我们称字符串s是“好”字符串。例如:输入:s = “abacbc”输出:true解释:s 中出现过的字符为 ‘a’,‘b’ 和 ‘c’ 。s 中所有字符均出现 2 次二、解题方法1、解题思路1、创建HashMap存放字符串中的字符和出现的次数。2、创建HashSe
2021-12-09 17:27:06
579
原创 力扣题解:349、两个数组的交集(Java)
文章目录一、题目描述二、排序+指针1、解题思路2、具体代码3、知识点三、哈希表1、解题思路2、具体代码3、知识点四、总结一、题目描述给定两个数组,编写一个函数来计算它们的交集。例如:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]对于这个问题我想到了两种解法。二、排序+指针1、解题思路(1)首先对两个数组进行排序,然后使用两个指针遍历两个数组。(2)初始时,两个指针分别指向两个数组的头部。每次比较两个指针指向的两个数组中的数字,如果两个数字不相
2021-12-08 10:44:38
933
原创 用Python输出斐波那契数列的几种方法
文章目录一、斐波那契数列二、第一种方法:使用递归1、递归四要素2、具体代码二、第二种方法:使用遍历三、第三种方法:以列表的形式输出斐波那契数列四、收获一、斐波那契数列斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(
2021-09-25 16:13:23
13751
原创 力扣题解:21.加一(python版)
文章目录一、问题描述二、第一种解法1、解题思路2、完整代码三、第二种解法1、解题思路四、第三种解法1、解题思路2、完整代码五、收获一、问题描述给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。二、第一种解法1、解题思路把数组转化成一个整数,给这个整数加一,然后又把这个整数转化为数组。2、完整代码def plusOne(digits): list1 =
2021-09-13 15:06:39
487
原创 用python实现二分查找(折半查找)
文章目录一、算法简介二、算法思路三、具体编码一、算法简介折半查找又叫二分查找,要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列(升序或者降序)。时间复杂度:O(log2n)每次循环都会舍弃一半的查找空间。空间复杂度:O(1)使用一个整型变量mid记录中间的值。二、算法思路需要用到三个指针:low,high,mid初始时,low指向列表的第一个元素,high指向列表的最后一个元素。mid指向列表中间的元素。需要查找的目标值为target,当target的值小于mid指向的值
2021-09-10 16:03:54
1156
原创 Python程序:输出杨辉三角的几种办法
文章目录一、问题描述二、问题分析三、第一种方法1、具体代码2、运行结果3、程序的改进四、第二种方法1、具体代码2、运行结果五、总结分析一、问题描述给定一个非负整数 n,生成「杨辉三角」的前 n行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。二、问题分析要生成杨辉三角,肯定需要用到双层for循环,用i表示行数,用j表示列数。用**triangle[i][j]**表示每一个数的具体位置三、第一种方法1、具体代码def triangle(n): x = [] # 存放最终结果
2021-09-09 17:08:45
20350
1
原创 力扣题解:21.合并两个有序链表
文章目录一、题目描述二、迭代法求解1、解题思路2、具体代码三、递归求解1、解题思路2、具体代码四、总结一、题目描述将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。二、迭代法求解1、解题思路对于链表的问题求解,是需要画图的,大家可以自己在纸上画一画。迭代法的主要思路:创建一个空的头结点res用来存放结果。然后l1和l2两条链的数值进行比较,大的直接链接到ans.next上。剩下的依次比较和挪动指针就可以实现了。2、具体代码 def mergeTwo
2021-09-02 21:30:28
136
原创 力扣题解:26.删除有序数组中的重复项(Python版)
文章目录一、题目描述二、完整代码1、双指针解题2、一快一慢双指针解题三、总结一、题目描述给你一个有序数组nums ,请你原地删除重复出现的元素,使每个元素只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组 。在使用 O(1) 额外空间的条件下完成。二、完整代码1、双指针解题def removeDuplicates(nums): left = right = 0 while right < len(nums): if
2021-08-21 20:50:27
721
原创 力扣题解:485.最大连续1的个数(Python版)
文章目录一、题目描述二、完整代码三、补充说明四、总结反思一、题目描述给定一个二进制数组, 计算其中最大连续 1 的个数。输入的数组只包含0和1 。输入数组的长度是正整数,且不超过10000。二、完整代码def findMaxConsecutiveOnes(nums): count = result = 0 #count用来记录每段连续1的个数 #result用来存放每个阶段最大连续1的个数 for i in nums:
2021-08-21 19:25:00
493
2
原创 力扣题解:283.移动零(Python版)
文章目录一、题目描述:二、第一种解法:单指针查找1、解题思路2、完整代码三、第二种解法:双指针1、解题思路2、完整代码四、第三种解法:冒泡排序1、解题思路2、完整代码五、总结一、题目描述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。要求:(1)必须在原数组上操作,不能拷贝额外的数组。(2)尽量减少操作次数。二、第一种解法:单指针查找1、解题思路首先设置一个指针tag,从左到右逐位置移动。然后开始遍历数组nums,如果遇到数组元素的值不为零,就
2021-08-21 16:39:05
357
原创 用python实现冒泡排序
问题:list1=[12,9,25,37,21,43,19],用冒泡排序对list1进行排序一、冒泡排序二、一趟冒泡排序1、具体代码2、运行结果三、冒泡排序完整代码1、完整代码2、学习技巧(1)内层循环(2)输出结果(3)外层循环(4)运行结果四、总结一、冒泡排序我会用更通俗的话将冒泡排序的思路解释出来。对于无序的一组数,冒泡排序就是从左到右,相邻的两个数依次比较大小,如果左边大于右边,左右两边的数字交换位置。否则,跳过这个数,从下一位置接着比较。每一趟冒泡排序都会有一个最大的数被交换到最后的位置,直
2021-08-21 14:00:33
3912
原创 力扣题解:27.移除元素(Python版)
力扣第27题:移除元素一、题目描述二、错误示范三、双指针的解题思路四、完整代码五、总结一、题目描述给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。二、错误示范我刚看到这个题目,感觉so easy.咚咚咚,我就写了一个程序。def removeElement(nums,val): for
2021-08-20 20:55:21
728
2
原创 Python代码:动态的创建列表
在Python中,已知列表a=[1,2,3,4,5,6],如何动态的创建一个列表使其里面的每一个元素值都为a列表的5倍?一、对于这个问题小赵同学想到了三种方法,和大家分享一下第一种方法:使用列表解析式,这是最简单的方法了。具体看下面的代码:第二种方法:列表解析式的一般形式第三种方法:使用索引添加元素二、问题扩展:对于列表a中的元素有选择的乘5倍,当a[i]>3时,b[i]=a[i]*5,其余情况b[i]=a[i].三、总结一、对于这个问题小赵同学想到了三种方法,和大家分享一下第一种方法:使用列表解
2021-08-02 21:18:51
3918
原创 用Python写的随机起名字的程序(可以起两字或三字名字)
今天老赵学习了easygui这个图形界面,因此想用easygui的界面写出一个随机起名字的程序一、程序的完整代码如果最近有想给宝宝起名字的朋友们,可以试试我这个程序哟~~~import easygui as gimport sysimport randomwhile True: x = g.buttonbox(msg="请选择要起的名字类型",title="起名器",choices=("单字名","双字名","结束")) first_name = g.enterbox("请输入你
2020-12-23 22:09:12
3350
6
原创 Python程序:任意输入一个三位数,然后把三位数的位置反转输出。
Python程序:任意输入一个三位数,然后把三位数的位置反转输出。第一种方法,把输入的三位数百位、十位和个位依次表示出来,然后将个位数字和百位数字进行交换。#输入number = 123,输出321number = int(input('请输入一个三位数:'))a = number%10 #个位b = number//10%10 #十位c = number//100 #百位re_number = a*100 + b*10 + cprint('%d的反转数是:%d'%(number,re
2020-12-01 09:00:38
46691
9
原创 C语言模块化编程的代码示例
C语言模块化编程的代码示例老赵最近写了一个小代码,是关于C语言程序化编程的,挺有趣的,和大家分享一下啦。一、程序概述二、程序结构三、 具体代码1、主函数2、随机数函数3、产生算法题函数4、答错反馈函数5、答对反馈函数四、运行结果五、为什么要模块化编程?老赵最近写了一个小代码,是关于C语言程序化编程的,挺有趣的,和大家分享一下啦。一、程序概述程序的主要功能是随机产生10道数学加减乘除题,用户输入答案,答错或者答对随机给出一句称赞或者鼓励。答对8道题及以上输出分数,否则重新答题。二、程序结构程序主要分
2020-10-26 22:26:12
4415
2
原创 《老赵手动整理的Python笔记(一)》
《老赵手动整理的Python笔记(一)》 下面的内容的都是老赵在学习Python过程中记录的一些知识点,还有对于不理解的地方的一些研究。老赵有点强迫症,对于不明白的事情总想去弄明白,不然饭就不香了。1、IDLE的快捷键2、Python可以直接用于数学计算。3、在一个字符串中嵌入一个双引号的两种方法4、字符串拼接的两种方式:5、Python的内置函数6、help(内置函数):查看内置函数的用法。7、使用变量的几点注意:8、Python语句书写的常用操作9、int()取整的特别之处10、重头戏:Python之禅
2020-10-18 21:21:57
299
1
原创 python中已经用pip安装了某模块,但pycharm中为什么仍然显示没有该模块?(已解决)
python中已经安装了模块,但pycharm中仍然显示No module named ‘模块名’。这个问题困扰了我很久,终于找到原因和解决方法。原来pycharm里面自带一个Python解释器,而这个里面是没有几个模块的。因为咱们在DOS命令行里面下载的模块是下载到Python的解释器里而不是pycharm里面的那个。打开pycharm依次点击file->Settings->Project Interpreter然后你就可以看见你现在所用解释器了。(路径是你创建的项目路径)如下图:
2020-10-12 21:00:07
10648
5
空空如也
在Pychram中输出空格,但是输出框里没有任何显示
2021-08-18
有没有大佬知道田纳西伊斯曼仿真?
2021-06-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人