- 博客(24)
- 收藏
- 关注
原创 VS 2019解决 “对COM组件的调用返回了错误HRESULT E_FAIL”
问题现象: VS2019创建项目时提示“对COM组件的调用返回了错误HRESULT E_FAIL”1、 以管理员身份运行“Developer Command Prompt for VS 2019”。开始菜单->visual studio 2019目录下面有。2、切换到如下目录下面:cd C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\PublicAssemblies3、运行命令:gacutil
2021-03-07 19:38:18
10576
13
原创 【C语言】 qsort 用于二维字符串数组的排序的方法
知识点:注意二维字符串数组array是通过地址传进来的,强制转换时需要使用(char **),返回字符串比较时,通过strcmp(*a1, *b1)来做比较。方式1:int cmp(const void *a, const void *b){ char **a1 = (char **) a; char **b1 = (char **) b; return strcmp...
2020-04-08 09:11:11
2197
原创 【C语言】Leetcode 17. 电话号码的字母组合
解题思路:1、电话号码使用一个hash表,直接通过hash表格,得到数字对应的字符已经长度。2、通过数字的个数digitsLen,求出实际的输出的字符串数组的长度*returnSize;3、数字长度循环,然后通过j的循环,通过每个数字将相关的字符遍历一遍。越往后的interval越小。res[j][i] = g_hash[digits[i] - ‘0’].c[j / interval % ...
2020-04-05 22:12:27
1117
原创 【C语言】Leetcode 916. 单词子集
解题思路:1、开始阶段使用暴力解法,通过将A/B字符中中的’a’~‘z’ 26个字符的数量统计出来,然后计算A中的每个字符串是否大于B中的每个字符串的长度。2、优化算法:BNum[BSize][MAX_COL] 计算每一列的最大的长度,然后把A中的每个字符串与最大长度比较,是否满足ANum[ASize][MAX_COL] > maxOfCol[MAX_COL],如果全部满足,可以认为是满...
2020-04-05 20:21:42
183
原创 【C语言】Leetcode 71. 简化路径
解题思路:如果碰到“./”,不做任何处理;如果碰到"…/",需要回到上一层(如果已经在顶层则不再处理);如果是"/",不做任何处理;如果是非以上字符,则新增一个路径,路径长度+1;关键知识点:1、需要巩固strtok的用法,定义为char *token = NULL;2、最后返回的字符串,需要Len + 1,避免返回值越界。https://leetcode-cn.com/problem...
2020-04-05 15:36:32
194
原创 【C语言】Leetcode1268. 搜索推荐系统
解题思路:先对products数组按照字母进行排序,然后通过对比前N个search字符串与products 排序后的数组进行对比,如果相同的话,则把字符串添加到返回输出的数组RES里面去。关键知识点:1、字符串qsort的应用,尤其cmp函数中,需要使用 return strcmp(*(char **)a, (char **)b);2、三维字符串数组的输出也需要考虑,尤其是int型的ret...
2020-04-05 13:24:36
565
原创 【C语言】Leetcode 1358. 包含所有三种字符的子字符串数目
思路:1、关键的核心点是相同的子串是算多次的,比如abcabc中出现了两次abc,这个要计算两次的。2、上面是一个关键的条件,那么可以使用滑动窗口法,每个字符串右边的字符从0~len -1;同时左边的字符串也不断的增加,但是有一个条件,就是tmp[i] >=1。注意这里left没有必要从0遍历到right,没有任何的意义。3、类似的求子串的数量的问题,一定不要尝试将所有的子串全部存储到...
2020-03-15 11:57:43
369
原创 【C语言】Leetcode 433. 最小基因变化
思路:1、此题与127题相似,采用BFS(广度优先搜索算法)+ 队列方式进行遍历,同时将相关的遍历的步数step返回给函数。2、详细分析,通过建立一个queue队列,每次检索出现的符合OneDiff不同的字符串,会从队尾进入队列。同时队列的前面会不断的判断是否满足跟end相同的字符串,如果相同就结束,返回相应的step值。如果不同的话,会沿着队列继续往下搜索。3、通过一个状态数组visit[...
2020-03-15 10:43:54
160
原创 【C语言】Leetcode 300. 最长上升子序列
解题思路:1、思路:通过新建一个数组,保存每个数字对应的前面的子序列的长度,如果新增一个nums[i],如果前面的每个nums[0]~nums[i -1]与nums[i]做个对比,如果小于nums[i],那么就要取最大的一个子序列长度riseNums[j] + 1存储到riseNums[i]里面。2、千万不要尝试把前面的子序列保存到一个数组中去,这块儿需要消耗非常大的内存,而且没有任何的意义。...
2020-03-15 10:12:05
321
原创 【C语言】Leetcode 7. 整数反转
解题思路:1、参考了leetcode的题解,采用数学的方法相对简单点,理解了思路,该题解起来就比较简单,如果按照字符串方法的话,处理的复杂度大大提高。2、数学方法定义了有符号int型整数的溢出的问题,限定最大值和最小值。int reverse(int x){//数学方法,个位数调到最高位,最高位数调到个位数。 long y = 0; int MAX = 0x7FFFFFFF...
2020-03-08 13:01:41
91
原创 【C语言】Leetcode 3. 无重复字符的最长子串
解题思路:1、读懂题目:其中不含有重复字符的 最长子串 的长度。注意最后要求返回的是最长子串的长度。2、解题思路:采用暴力循环破解法,第一层循环根据字符串i的位置,从零开始;第二层循环(关键),通过j不断往后移动,确保之前的k的字符串都跟j是不同的,如果出现相同的,则断开。i从下个字符从零开始,看看count_max内是否有相同的字符串,如果是的话,再往后移动。3、此题的逻辑上面确实还是有点...
2020-03-08 12:56:01
204
原创 【C语言】Leetcode 890. 查找和替换模式
解题思路:1、整体思路:通过将pattern转换为数字格式,通过比较数字格式是否是相同的,来判断两个字符串是否是同一个pattern。数字0表示唯一的字母,往后按顺序1,2,3…赋值2、关键点:转换数字格式时,要考虑如果有3个或者3个以上相同的字母的场景,所以a[0]字母最后再判断是否要转换为某个数字。3、使用flag[] 数组来判定是否相同,不同的判定为1,最后把相同的拷贝到返回字符串指针...
2020-03-08 12:37:13
158
原创 【C语言】Leetcode 165. 比较版本号
解题思路:1、通过将版本号字符串转化为数组,通过比较两个数组的大小来判定版本号大小,注意边界的处理,即最后一个版本号的处理,要根据’\0’来判定,所以字符串的长度要+1;2、注意数组末尾补零处理,同事按照最长的长度来比较,简化两个数组长度不同的处理。3、注意使用atoi函数,简化“01”和“001”的字符串的数值的差异处理。int compareVersion(char * version...
2020-03-08 12:22:26
796
1
原创 【C语言】Leetcode 363.矩形区域不超过 K 的最大数值和
解题思路:1、题目翻译:题目意思是求一个二维数组内的一个矩形的和res(1 ×1,1×2,2×2…),且res 是小于等于k的最大值。如果里面某一个元素或者一个求和等于k的话,那么res直接就是k。2、解题思路:采用暴力破解法,先是最左列left到最右列right的遍历,然后最top行到最bottom行的遍历求助,且保存最大的res值,最后返回即可。3、知识点:二位数组的内存分配,sum[m...
2020-03-08 12:15:29
205
原创 【C语言】Leetcode 289. 生命游戏
解题思路:1、考虑到边界的问题,分为在首尾各增加1行,1列,全部赋值0,简化后续的操作处理。2、二维数组的malloc动态内存分配方法,先分配行,再循环分配列。这块儿需要进一步学习和巩固。3、接下来就是对8个邻居求和,之前题目的规则,进行判断和1/0翻转。注意:所有的计算都是基于原始值,新翻转的不影响。void gameOfLife(int** board, int boardSize,...
2020-03-05 23:51:55
188
原创 【C语言】Leetcode 365. 水壶问题
解题思路:1、参考了leetcode别人的解题思路,两个水壶实际是最大公约数问题(确实没有想到),反推好像也没有毛病。2、搞清楚了最大公约数,这道题最大的问题就是边界问题,包括Z超出x+y的边界,x,y ==0的情况,以及x和y其中有一个为0 的情况等等。这道题提交多次未通过就是因为边界处理的不够好。bool canMeasureWater(int x, int y, int z){ ...
2020-03-05 23:41:55
716
原创 【C语言】Leetcode 1103 分糖果II
解题思路:1、采用两次循环,一层循环使用while,二层循环根据数组进行赋值,整体的算法不算太复杂。2、注意数组是累积相加(开始时直接写成了赋值出现问题),末尾数值的处理需要注意。/** * Note: The returned array must be malloced, assume caller calls free(). */int* distributeCandies(in...
2020-03-05 23:36:37
241
原创 【C语言】Leetcode 1171 从链表中删去总和值为零的连续节点
解题思路:参考leetcode上面的解法,采用双指针方式,依次循环遍历的方式,及时删除相关节点。1、p从第一个节点开始,依次跟后续节点求助,如果依次求和不为0,那么p后移动一个节点 p = p -> next。2、如果从p开始的第n个节点q求和为0,那么p->next直接指向q->next节点。struct ListNode* removeZeroSumSublists(...
2020-03-04 23:54:35
288
原创 【C语言】Leetcode 19 删除链表的倒数第N个节点(只允许遍历一次)
解题思路:参考了leetcode里面的解法,采用双指针固定长度浮窗方案(不知道命名是否准确),即设立两个指针,起始指针p,以及结束指针q,p先保持不动,q移动到n+1的位置,然后p,q同时往后移动,直至q达到NULL点。struct ListNode* removeNthFromEnd(struct ListNode* head, int n){ struct ListNode *re...
2020-03-04 23:44:59
150
原创 【C语言】Leetcode 2 两数相加
关键知识点:1、链表的操作都会新增一个头节点struct ListNode *res并且分配内存,同时返回头指针时应返回res->next,关于头指针和头节点可以参考以下的blog:https://www.cnblogs.com/youxin/p/3279391.html2、新建链表节点时,一定要记住对于末尾的链表指针赋值NULL,否则会出现内存分配错误,如下:res_cur->n...
2020-03-04 23:32:44
182
原创 【C语言】Leetcode 1 两数之和
1.两数之和:int* twoSum(int* nums, int numsSize, int target, int *returnSize){*returnSize = 2;static int returnValue[2] ={0};for(int i = 0; i < numsSize; i++){for(int j = i + 1; j < numsSize; j+...
2020-02-23 09:06:54
177
原创 Android studio中Gradle的配置方案说明
1、下载Gradle文件包,并且解压缩。2、Settings->Gradle 中配置正确的gradle的路径。3、勾选android Studio路径下的Enable Memberdded maven repository
2019-09-07 21:42:07
172
原创 Android SDK Manager 无法刷新出来相关的SDK的原因?
Android SDK Manager 无法刷新出来相关的SDK的原因?答复:主要是因为Proxy Settings设置的原因,同时需要勾选Others 里面的Force https://… source to be fetched using http://…...
2019-09-07 20:58:59
402
原创 Edit configurations 里面没有APP的菜单选项,且RUN按钮灰化的解决方案
欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体...
2019-08-08 23:25:49
1257
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人