自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

娄零的博客

希望 编程 能带给你意想不到的快乐~

  • 博客(148)
  • 收藏
  • 关注

原创 科大讯飞笔试编程第二题(处理Scanner不能先输入数字再输入字符串问题)

标记读取方法 nextInt() 读取数字,然后在分隔符处停止,这里的分隔符是行分隔符(回车键),nextLine() 会在读取行分隔符之后结束,然后返回行分隔符之前的字符串,因为行分隔符之前没有字符,所以line是空的。:因为我们前面读取的是一个数字,我们可以先用字符串读取这个数字,在用字符串读取我们所要读取的字符,然后再把第一个读取的字符串转换为数字就可以实现这个功能了。在使用scanner的时候如果先读取一个数字,在读取一行带有空格的字符串,势必会出错或者字符串读不到。

2023-08-26 17:00:47 287

原创 腾讯音乐第三道编程题

题目描述:给一个数字n,构成n*(n+1)/2大小的数组,包含1个1,2个2,n个n,最后输出的数组相邻的两个数字不相同,输出的数组可能不唯一。:我们其实可以发现,输出的数组中最大值n和次大值n-1是交叉存放的,然后再依次取剩下的最大值和次大值(sortt函数实现的功能)。输出:[4,3,4,3,4,3,4,2,1,2]2023.4.13号的第三道编程笔试题。

2023-04-15 21:29:53 177 1

原创 刷题30-对称的二叉树

思路:通过找规律可以发现,当n=0,输出为1;n=4,输出为5,类似于。要想两棵树镜像,那么一棵树左边的左边要和二棵树右边的右边镜像,一棵树左边的右边要和二棵树右边的左边镜像。调用递归函数,我们想知道它的左右孩子是否镜像,传入的值是root的左孩子和右孩子。左节点为空的时候右节点不为空,或反之 -> 长得不一样-> false。只有左左和右右镜像且左右和右左镜像的时候,我们才能说这两棵树是镜像的。左节点和右节点都为空 -> 倒底了都长得一样 ->true。输出:是:true,不是:false。

2023-04-01 16:02:57 1193

原创 队列的基本知识

一棵深度为k有n个节点的二叉树,对树中的节点按从上至下、从左至右的顺序进行编号,如果编号为i(1

2023-03-20 10:41:17 301

原创 刷题29-最小时间差

还要注意00:00指的是前一天的,还是后一天的,所以要再添加一个24*60的元素。Collections.sort排序适合对list集合排序。timePoints列表中不能超过24。解题思路:后缀表达式–操作符在操作数的后面。解题思路:一天有24个小时,也就是有24。

2023-03-01 19:43:06 69

原创 刷题28-有效的变位词

需要注意的特殊情况1.只有一个单词肯定符合要求2.当两个字母前半部分完全一样时,短的单词在前面,比如app在前,apple在后。解题思路:判定一组单词是否也按照给定的字母表的顺序排列,只需要比较两个单词中第一个不相同的字母顺序。首先要将字母表映射到一维整形数组中,越靠前的字母数组取值越小。把字符串中的字符映射成整型数组,统计每个字符出现的次数。,当两个字符串完全相等或者长度不等时,就不是变位词。ArrayList为基于数组的大小可变。解题思路:注意返回类型为。,可以理解为列表中套列表。

2023-02-26 10:08:57 415

原创 刷题27-最少最近使用缓存

解题思路:经过分析可知,需要设计一个哈希表和一个双向链表,位于链表的第一个元素是最少使用访问的。

2023-02-25 16:32:47 82

原创 哈希表的介绍

在哈希表中插入、删除或查找一个元素都只需要O(1)的时间,因此经常被用来优化时间效率。在Java中,哈希表有两个对应的类型,即HashSet和HashMap。

2023-02-20 21:12:46 422

原创 刷题26-排序的循环链表

先判断节点是否为空,空的话就将插入新值的节点。非空的话,首先找到值最小的节点realNode,其次寻找插入位置,最后连接节点。解题思路:首先注意是。

2023-02-19 19:03:10 84

原创 刷题26-回文链表

解题思路:双端队列还是挺好用,注意链表的节点数是奇数还是偶数。奇数的话中间的节点就不用比较了,其他的节点首尾各出来一个进行比较。解题思路:需要利用递归算法展平每个子链表,然后将子链表插在node和next节点之间。

2023-02-17 10:39:06 57

原创 刷题25-重排链表

deque做队列使用时,继承了Queue的接口,所以插入元素操作可以使用Queue的用法offer()或者相当于deque的从队尾插入元素offerLast()解题思路:通过观察链表可以发现,把链表一分为二,后半段链表反转,然后两个链表穿插连接,当链表的节点总数是奇数时,要保证链表的前半段比后半段多一个节点。关于把链表一分为二,可以采用定义快慢指针的做法,快指针每次走两步,慢指针每次走一步,当快指针走到末尾时,满指针也走到了中间节点。Deque实现了双向队列,队列,和栈的功能。1.Deque的介绍。

2023-02-16 10:19:22 302

原创 刷题23-链表中的两数相加

利用栈“后进先出”的特点,后面的数先相加,进位由r保存,也解决了两个链表长度不一致的问题,没有的元素设为0。解题思路:利用两个栈+一个链表。

2023-02-12 18:31:50 62

原创 刷题22-反转链表

解题思路:第一种递归思想,有递也有归,递的过程就是head指针一直走到尾,归的过程就是后一个节点连在前一个节点的过程。解题思路:第二种,用迭代的思想,有三个指针分别记录当前节点,当前节点的前一个结点,以及后一个节点。ps:今天又是懒懒散散的一天,再过两天!

2023-01-07 21:08:09 90

原创 刷题21-两个链表的第一个重合节点

解题思路:受22题启发,建立一个set集合,先遍历A链表,把节点值及关系存进去,再遍历B链表,如果有相同的节点则返回,否则无。

2023-01-07 19:46:13 60

原创 刷题20-链表中环的入口节点

设置两个快慢指针,一个一次走一步,一个一次走两步,如果链表中不包括环,走的快的指针直至到达链表的尾节点都不会和走的慢的相遇(判断条件fast.next!=null,当下一个节点为空时,说明没有环,直接退出循环)。如果包含环,走的快的指针在环里绕了一圈后会追上慢的指针,此时让快的指针回到头节点处,快慢指针继续一步一步走,等到再次相遇时,就是在入口节点处。还有一个思路,利用set集合,当集合中重复某个节点时就说明有环,它就是入环节点。

2023-01-05 21:10:41 91

原创 刷题19-删除链表的倒数第n个节点

解题思路:第一种:建立头节点,不用判断删除头节点为空的情况,设置两个指针front和back,开始都指向头节点,开始指针front先走n步,接着front指针一直走到尾,back指针开始走,当frnot指针到尾时,back指针恰好走到倒数第n+1个节点。如果是ListNode front=head,则开始指向1这个节点。具体演示如下,删除倒数第2个节点。

2023-01-04 21:20:02 69

原创 链表的基本知识

另外一种方法,可以首先创建一个哨兵节点,并把该节点当作链表的头节点,然后把原始的链表添加在哨兵节点的后面。在链表的尾部添加一个节点,由于通常只有一个指向单向链表头节点的指针,因此需要遍历链表中的节点直至到达链表的尾部,然后在尾部添加一个节点。找到删除节点的前一个节点,然后把该节点的next指针指向它下一个节点的下一个节点。当输入的链表节点为null时,输入的链表为空。此时,新添加的节点成为链表中的唯一节点,也就是链表的头节点。哨兵节点通常位于链表的头部,它的值无任何意义。在一个有哨兵节点的链表中,

2023-01-02 13:41:15 77

原创 刷题18-最多删除一个字符得到回文

解题思路:终于自己独立做出来啦,写两个函数,一个是判断是否为回文数的函数judge(),另外一个函数包括两个指针left和right,每次left指针移动一位,right指针从left+1到s.length()-1区间内变化,然后调用判断函数,判断区间内子串情况,是的话+1。解题思路:参考了一下别人的解答,难点在于当遇到不同字符时,应该删除哪个,应该两种情况都考虑一下,可以再写一个函数,专门判断删除后的后续字符回文情况。

2023-01-01 20:46:00 152

原创 刷题17-有效的回文

解题思路:想的比较简单,首先就是把字符串转为小写的,用toLowerCase()函数,然后定义一个字符数组,只存储数字和字符,最后首尾比较字符是否相等。看解答还有char类型中还有isLetterorDigit()函数,判断是否是字符或者数字。

2022-12-30 20:57:49 81

原创 刷题16-包含所有字符的最短字符串

当cnt2[n]>=cnt1[n],也就是cnt2中 n 所代表的字符出现次数,比cnt1中 n 所代表的字符出现次数多或相等,也就是含有。解题思路:把字符串s和t抽象为两个整型数组,对于子串t,记录每个字母出现的次数,定义变量diff,初值为t字符串中不重样的字符个数。利用双指针找到以下标right结尾,且含有t所有字符的最小长度区间[left,right].定义两个数组 cnt1与cnt2,将字母转化成数字,并以此为下标,出现次数作为值存进数组中,

2022-12-30 11:05:39 209

原创 刷题15-不含重复字符的最长子字符串

i指针始终指向字符串的最后一位,j指针指向第一位。sum用于记录字符重复情况。

2022-12-28 21:07:34 82

原创 刷题14-数组中和为3的数

第二次内层循环first和end,左边元素重复,右边元素重复。第一处外层循环i,nums[i]==nims[i-1]然后三指针转化为两指针问题。

2022-12-27 21:47:57 48

原创 刷题13-左右两边子数组的和相等

思路:关于s1想的是首先排序,因为是子串,牵扯到顺序,然后对于s2,每次利用substring函数分割s1.length长度的字符串,然后分割后的子串再排序,最后利用equals函数比较两个子串是否相等。思路:用到了三个循环,从头到尾遍历数组,比较左右两边数组的和是否相等,当然这种思路时间复杂度也比较高。注意,用到的几个字符串函数。

2022-12-11 21:22:43 323

原创 刷题12-和为k的子数组

而且当扫描到数组的第i个数字并求得前i个数字之和是x时,需要知道在i之前存在多少个j且前j个数字之和等于x-k。需要一个哈希表,key为前i个数字之和,value为每个和出现的次数。这几道题目都是求连续子数组的,要转换一下思维。

2022-12-10 16:28:17 139

原创 刷题11-和大于或等于K的最短子数组

核心思想:设置两个指针left和right,初始都指向0,当sumleft),求每段符合空间的子空间,然后进行累加。所以,当sum>=k时,left++,数组中减少元素,即sum/nums[left++]和上题的思路差不多:指针right永远不会走到left的左边。,也就是返回值最小为0,其次是1。

2022-12-09 20:47:02 579

原创 刷题10-单词长度的最大乘积

用一个长度为26的布尔型数组来存储每个字符串26个字母出现的情况,当该字母出现时标记为true。之前想的比较简单的思路,两个循环,每次j=i+1,但是时间复杂度比较高。为了降低复杂度,可以设置j从数组的最后开始找,利用二分的思想。然后判断每对字符串是否包含相同的字符。

2022-12-09 10:22:06 88

原创 刷题9-只出现一次的数字

刷题9-只出现一次的数字解题思路:先把这个数组按从小到大的顺序排序,然后比较最近两个元素是否相等,相等的话就比较下下个元素核心代码:题目二-前n个数字二进制中1的个数思路:应该是比较笨但思路比较清晰的方法十进制数首先转化为二进制数,然后再判断二进制数字中’1’的个数或者利用书上的解题思路i&(i-1),将整数i的最右边的1变为0;第二种,把i分为奇数和偶数若i为偶数,则i和i/2(i>>1)的二进制形式中1的个数是相同的。若i为奇数,则比i/2的1的个数多1.

2022-12-07 10:14:32 71

原创 刷题8-二进制加法

刷题8-二进制加法刚开始的错误思路:把字符串转化为整数相加,然后再转为字符串,这有可能会出现溢出问题无论是int还是long类型都有可能溢出错误代码:注意函数:用于将字符串参数作为有符号的十进制整数进行解析如果方法有两个参数,使用第二个参数指定的基数,将字符串参数解析为有符号的整数。正确思路:用二进制的方法进行加核心代码:函数charAt()的用法:其中,StringBuilder与StringBuffer和String区别:

2022-12-05 17:12:46 182

原创 刷题7-整数除法

刷题7-整数除法专项第一题-简单思路:不能用乘除,但可以用加减另外还要注意,任何正数转化为整数都不会溢出,所以先都转化为负数然后判断一个特殊会溢出的情况核心代码:在这个代码片中注意:1.java中的异或运算^2.Integer.MIN_VALUE=-2^313. Integer.MAX_VALUE=2^31-1

2022-12-04 20:09:53 162

原创 刷题6-回文数

刷题6-回文数普通的思路:先把x转化为字符数组,然后对字符数组进行操作,从两头开始比较是否相等,不相等的话直接false核心代码:如果不用这个思路,应该怎么做呢可以把x这个数进行分类,x如果为负数,肯定不是回文数然后把x这个数拆开再组合

2022-12-03 11:23:37 124

原创 刷题5-合并两个有序数组

这个方法是是用来将数组转换成String类型输出的,入参可以是long,float,double,int,boolean,byte,object。把数组nums2的元素复制到数组nums1中,然后利用Java的Arrays.sort()数组排序,默认从小到大。又比如我想传入一个二维的数组,按照一维数组从小到大排序,当第一维相等时,按照第二维从小到大排序。比较有意思的是,查了查sort()这个函数,在数组中的排序语法,比如说我想从大到小排序。只要数组元素可以进行比较就行,不需要传入比较器。

2022-12-02 20:56:02 342

原创 Oracle11g安装

(3)超级管理员:SYS (密码:change_on_install)(2)普通管理员:SYSTEM(密码:manager)但是这里的用户名如果是以system的话,密码错误。(1)普通用户: SCOTT (密码:tiger)

2022-12-02 11:59:41 3069

原创 刷题4-加一

正确的思路:还是用数组解题目,从后往前判断非负数组中的数字是不是为9,不为的话,加1,返回数组,为9的话,变为0,数组的空间增加1,这里比较有意思的是在函数体的有一行代码。在函数中这个nums数组就等于传入的digits数组的前digits.length内容,而且+1扩展后的nums数组,扩展的位置为nums[0]初始的思路想的太过简单,数组转化为数字,数字加1,再转化为数组,但是这个数太大了,一定会溢出。

2022-12-01 11:32:19 63

原创 虚拟机安装linux系统

CentOS-7.5下载地址:https://pan.baidu.com/s/18hdcWE4tYQOxMov2w0IlBQ 提取码: 486k。1.先下载VMware虚拟机。2.centos 7下载。

2022-11-30 21:21:41 133

原创 刷题4-搜索插入位置

第一个想的办法可能时间复杂度会超过,用了一个for循环,没想到通过了。,报错了两次,是因为加限制条件加错了位置,数组越界了。内存消耗降低了一点点。

2022-11-29 20:48:27 61

原创 刷题3-移除元素

我的解题思路:超时,想的有点复杂,用到了两个双循环,我想的是当找到val这个元素时,后面的元素都往前挪一个位置。从两张测试的结果也可以看出,超时的那个思路确实浪费了很多时间。,小型的代码运行的还可以~

2022-11-28 20:22:04 157

原创 刷题2-删除有序数组的重复项

【代码】刷题2-删除有序数组的重复项。

2022-11-27 21:54:16 84

原创 刷题1--两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。你可以假设每种输入只会对应一个答案。输入:nums = [2,7,11,15], target = 9。输入:nums = [3,2,4], target = 6。进阶:你可以想出一个时间复杂度小于 O(n2) 的算法吗?输入:nums = [3,3], target = 6。

2022-11-18 10:21:46 59

原创 移动测试Appium安装

并配置JAVA_HOME和PATH(1)解压(2)配置ANDROID_HOME和PATH这里下载的是夜神模拟器,直接去官网下就好了–点(1)首先打开夜神模拟器–>设置–>关于平板电脑–>版本号(点7下)打开开发者模式然后返回设置,会发现多出来一个开发者选项—>点开开发者选项—>然后打开USB调试。

2022-11-03 10:32:15 1037

原创 chrome浏览器安装SeleniumWebDriver

1.首先在桌面建立一个为selecode的文件夹,然后pycharm–>file–>open导进去。4.下载后的文件,不过不选择配置环境变量的话,可以直接把驱动文件放在建立的selecode文件里。2.然后在pycharm终端输入安装命令pip install selenium。浏览器版本、webDriver版本、Selenium版本要匹配。由于安装的电脑是64位的,点那个win32.zip下载。再打开pycharm文件可以发现驱动文件已经导进去了。3.检查chrome浏览器的版本,下载对应的驱动。

2022-10-14 16:15:49 4527

空空如也

空空如也

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

TA关注的人

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