c
叮当_
这个作者很懒,什么都没留下…
展开
-
leetcode_面试题 02.04. 分割链表--双百简单思路
题目: 编写程序以 x 为基准分割链表,使得所有小于 x 的节点排在大于或等于 x 的节点之前。如果链表中包含 x,x 只需出现在小于 x的元素之后(如下所示)。分割元素 x 只需处于“右半部分”即可,其不需要被置于左右两部分之间。思路:1.定义两个带头结点的链表,这里注意头节点的链表需要初始化,否则会报错!2.两个带头节点的链表,一个存放小于x的节点。另一个存放大于x和等于x的节点。3.遍历题目所给的链表,将其分类放到两个带头节点的链表中。4.最后将两个链表连起来,返回就可以。这里我定.原创 2020-06-21 20:30:09 · 147 阅读 · 0 评论 -
C语言简单思路实现:leetcode859. 亲密字符串
给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回false 。看了这道题有几个关键点:第一:只能交换俩字符第二:必须是能交换俩字符之后两个相同,不交换就相等返回false例如(“ab”“ab”),但是这里注意"abab""abab"这种类型是返回true的,因为aa或者bb可以互相交换。关于这道题,我的思路是这样的:1.先判断两个字符串长度是否相等,不相等直接返回false。(经过这一步,后面的条件默认是俩.原创 2020-05-14 13:01:29 · 253 阅读 · 0 评论 -
编程实现:leetcode_1162-- 地图分析
你现在手里有一份大小为 N x N 的「地图」(网格) grid,上面的每个「区域」(单元格)都用 0 和 1 标记好了。其中 0代表海洋,1 代表陆地,请你找出一个海洋区域,这个海洋区域到离它最近的陆地区域的距离是最大的。我们这里说的距离是 「曼哈顿距离」(> Manhattan Distance):(x0, y0) 和 (x1, y1) 这两个区域之间的距离是 |x0 - x1...原创 2020-04-30 20:00:04 · 390 阅读 · 0 评论 -
编程实现:leetcode_565 数组嵌套
索引从0开始长度为N的数组A,包含0到N - 1的所有整数。找到并返回最大的集合S,S[i] = {A[i], A[A[i]],A[A[A[i]]], … }且遵守以下的规则。假设选择索引为i的元素A[i]为S的第一个元素,S的下一个元素应该是A[A[i]],之后是A[A[A[i]]]…以此类推,不断添加直到S出现重复的元素。这道题我刚开始的思路是:将得到的S的元素保存起来,然后每得...原创 2020-04-27 16:46:42 · 198 阅读 · 0 评论 -
编程实现:删除最外层括号
这道题的难点是如何确定外层括号。我的方法是计数器的办法,当遇见 ‘(’ count1++;当遇见 ‘)’ count2 ++;当 count1=count2 时,说明 ‘(’ 数量和 ‘)’ 数量相等,这样就可以确定最外层括号了。我的代码中有三个变量i,j,a,i是用来记录最外层括号中的 '('的位置,j是用来记录最外层括号中的 ')'的位置,i和j都是便于字符串的左移来覆盖最...原创 2020-04-22 00:44:43 · 156 阅读 · 0 评论 -
strlen 理解库函数以及三种方式模拟实现
strlen是计算字符串长度的一个库函数,见到 ‘\0’ 停止。int main(){ char str1[] = "abcd"; char str2[] = { 'a', 'b', 'c', 'd' }; strlen(str1); strlen(str2);}这里str1的长度为4,但str2的长度为随机值。原因如下:str1在初始化的时候末尾有一个 ‘\0’,strlen...原创 2020-04-18 13:19:06 · 336 阅读 · 0 评论 -
详解:求Sn = a + aa + aaa + aaaa + aaaaa······的前n项之和,其中a是一个数字
这题的思路是:假设a=2,计算前3项之和,那么就是2+22+22第一项等于a第二项等于210+2第三项等于2210+2我们可以发现22等于第二项所以我们可以定义一个中间变量来c,c=10*c+a,就可以把前n项表示出来,然后求和就可以得出答案了。int main(){ int a = 0; int b = 0; int i = 0; int sum = 0; int c =...原创 2020-04-16 18:06:02 · 877 阅读 · 0 评论 -
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。
先将字符串逆序,然后将其分为两部分,例如abcdefg,逆序完为gfedcba,当n等于2时,将其分为两部分,第一部分为gfedc 第二部分为ba,然后第一部分和第二部分进行字符串逆序,就可得到答案。char* reverseLeftWords(char* s, int n){ int i = 0; int sz = strlen(s); for (i = 0; i < sz ...原创 2020-04-10 14:43:16 · 1448 阅读 · 0 评论