- 博客(10)
- 收藏
- 关注
原创 C语言刷LeetCode每日一题(2024.1.22)670.最大交换
若nums[max]>nums[i],说明i是备选用于替换的数值位,记录下i为idex1,同时记录max为idex2;遍历完成,若idex1!=-1,说明要交换;设置idex1=-1,idex2=-1,max=n-1;nums[max]<nums[i],修改max值为i;从右侧开始遍历,寻找最大数字下标max;
2024-01-22 12:00:25 456
原创 C语言LeetCode每日一题(2024.1.20)2788. 按分隔符拆分字符串
了解此,函数解题思路如下:对每一个字符串进行strtok分割,并将每一个子串加入结果数组中。函数作用:以delim中的字符来分割str字符串,每次调用只会分割一次。
2024-01-21 10:39:57 428 1
原创 C语言LeetCode每日一题(2024-1-12)2085.统计出现过一次的公共字符串
Hash统计题,如何用C语言实现字符串类型的key的哈希表。
2024-01-12 11:03:31 927 1
原创 C语言LeetCode每日一题(2024-1-11)2645.构造有效字符串的最小插入数
1.当前word[i]大于word[i-1],则这两个字母应该在同一个‘abc’中。2.当前word[i]小于word[i-1],则这两个字母在不同'abc'中。
2024-01-11 10:59:29 396 1
原创 C语言LeetCode每日一题(2024-1-10)2629.删除子串后的字符串最小长度
1.将字符串依次入栈,当栈顶两个元素为'CD'或'AB'时(这里是栈顶为D或B),出栈。这道题乍一看是一个模拟题,实际上是一个栈问题,类似于。2.遍历完后统计栈剩余元素个数。
2024-01-10 10:23:59 447 1
原创 C语言Leetcode每日一题(2024-1-9)2707.字符串中的额外字符
2.找到一个j,使得[j,n-1]处的字符为dictionary中的字符,则转化为前j-1个字符的子问题。思路为两类子问题:1.直接将末尾字符当作额外字符,转化为前n-1个字符的子问题。采取动态规划的思路,dictionary直接作为哈希表来查找。
2024-01-09 11:13:22 696
原创 C语言Leetcode每日一题(2024-1-8)447.回旋镖的数量
翻译成人话:points数组中选择3个点组成一组(i, j ,k),如果其中i到j的距离和i到k的距离相等,就可以构成一个回旋镖,求一共有几组这样的三元组(j,k可互换)。并不算难,用c++或者java的hash库很容易,但是C语言难就难在需要自己创建一个hash结构体完成hash查询,如果直接以数组存储所有可能距离遍历查找肯定超时。3.该点形成的回旋镖个数:如果hash[key]>2 则sum+=hash[key]*(hash[key]-1)2.第二层循环遍历其他点,hash表记录i与其他点的距离。
2024-01-08 10:12:59 411
原创 C语言刷代码随想录--链表相交
2.若第一次变为空指针,则换到对方的头节点继续遍历,直到p,q相遇或某一个为空。一般的方法是求链表长度差值,保证二者同一位置开始向后遍历;这样做可以确保二者相遇时走过的路程相同。1.指针p,q向后遍历直到相遇或为空。
2024-01-07 11:30:14 365 1
原创 C语言刷代码随想录--螺旋矩阵2.0
总结:所有循环模拟题,最重要的就是确认边界,尽可能确保每一次循环所干的事情相同,且最终能够完全模拟结果。1.分层次从左到右、从上到下、从右到左、从下到上依次进行进行填充;2.n为奇数,则中间需要填充最后一个数(偶数正好最后一个循环填满)循环模拟题需要确定边界,题解确定为左闭右开的原则,逐层遍历。
2024-01-07 10:20:03 721 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人