![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
刘十三1103
这个作者很懒,什么都没留下…
展开
-
最后一个单词的长度
由若干单词组成,单词前后用一些空格字符隔开。是指仅由字母组成、不包含任何空格字符的最大子字符串。最后一个单词是“World”,长度为5。原创 2023-08-07 20:44:44 · 52 阅读 · 0 评论 -
移除元素 (双指针)
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。不要使用额外的数组空间,你必须仅使用。的元素,并返回移除后数组的新长度。原创 2023-07-31 20:50:34 · 29 阅读 · 1 评论 -
合并两个有序链表
递归的基本思想是某个函数直接或者间接地调用自身,这样原问题的求解就转换为了许多性质相同但是规模更小的子问题。求解时只需要关注如何把原问题划分成符合条件的子问题,而不需要过分关注这个子问题是如何被解决的。新链表是通过拼接给定的两个链表的所有节点组成的。,这个函数就叫递归函数,调用的过程叫做递归。将两个升序链表合并为一个新的。原创 2023-07-27 10:10:46 · 39 阅读 · 1 评论 -
有效的括号
2:栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom);3:根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除。简单来说:栈就像是在排队,最里面的最后出,最外面的最先出。1: 栈是一个先入后出的有序列表;可以根据栈来解决这个问题。,判断字符串是否有效。原创 2023-07-26 14:44:23 · 35 阅读 · 1 评论 -
最长公共前缀
依次遍历字符串数组中的每个字符串,对于每个遍历到的字符串,更新最长公共前缀,当遍历完所有的字符串以后,即可得到字符串数组中的最长公共前缀。如果在尚未遍历完所有的字符串时,最长公共前缀已经是空串,则最长公共前缀一定是空串,因此不需要继续遍历剩下的字符串,直接返回空串即可。可以先比较数组里面字符串的长度,找出最短字符串,然后逐个比较所有字符串的前缀是否都与最小长度字符串相等,更新最长公共前缀.然后需要遍历字符串,如果公共前缀为0同样跳出循环,返回空串。编写一个函数来查找字符串数组中的最长公共前缀。原创 2023-07-21 10:02:45 · 43 阅读 · 1 评论 -
罗马数字转为整数
数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做。2.当小值在大值的左边,则减小值;3.当小值在大值的右边,则增加值;把一个小值放在大值的左边,就是做减法,反之为加法;1.罗马数字是由I,V,X,L,C,D,M构成;4.所以右边的值为正,最后一位必然为证。给定一个罗马数字,将其转换成整数。,即为两个并列的 1。原创 2023-07-19 16:03:42 · 29 阅读 · 0 评论 -
算法之回文数
对于数字 1221,如果执行 1221 % 10 (1221对10进行取余)我们将会得到最后一位数字1 ,要得到倒数第二位数字,我们再对122进行取余得到2。如果我们再把最后一个数字乘10,再加上倒数第二位的数字,1*10+2=12,就得到了我们想要反转的数字。如果继续这个过程,我们将会得到更多位数的反转数字。然而数字的长度有可能是奇数也有可能是偶数我们可以通过去除中间的数字(长度为奇数反转之后中间的数字不影响最回文)。那么,我们应该如何知道反转数字的位数已经达到原始数字位数的一半?原创 2023-07-18 19:44:52 · 317 阅读 · 1 评论 -
初学稀疏数组
//创建一个原始的二维数组,11*11 //0:表示没有棋子 1:表示黑子 2:表示白子 int chessArr1[][] = new int[11][11]; chessArr1[1][2]=1; chessArr1[2][4]=2; //输出原始的二维数组 for(int[] row :chessArr1) { for(int data :row) { ...原创 2022-05-02 17:36:14 · 235 阅读 · 0 评论