万人千题计划
文章平均质量分 54
C_Ryson
喜欢研究各种方向的计算机类本科生。“本科生嘛,当然是要多往几个方向走走,才能知道喜欢研究什么!”
展开
-
(c语言实现)算法笔记之bfs及pta习题
目录一,bfs(广度优先搜索)的定义二,bfs(广度优先搜索)的应用三,题型训练1,奇怪的电梯2,寻宝3,龙舌兰酒吧四,总结 一,bfs(广度优先搜索)的定义BFS 全称是Breadth First Search,中文名是宽度优先搜索,也叫广度优先搜索。是图上最基础、最重要的搜索算法之一。所谓宽度优先。就是每次都尝试访问同一层的节点。 如果同一层都访问完了,再访问下一层。这样做的结果是,BFS 算法找到的路径是从起点开始的最短...原创 2022-04-01 17:54:56 · 5023 阅读 · 0 评论 -
【万人千题】九日集训第六讲,API排序
目录一:知识点1,排序介绍2,qsort二,习题1,912. 排序数组 - 力扣(LeetCode) (leetcode-cn.com)2,169. 多数元素 - 力扣(LeetCode) (leetcode-cn.com)3,217. 存在重复元素 - 力扣(LeetCode) (leetcode-cn.com)4,164. 最大间距 - 力扣(LeetCode) (leetcode-cn.com)5,905. 按奇偶排序数组 - 力扣(LeetCode) (lee原创 2021-12-14 13:40:08 · 444 阅读 · 5 评论 -
【万人千题】九日集训第五讲指针12.13
一,知识点1,指针定义在数据在内存中的存放以字节为单位,为了正确使用这些数据,会把内存中每个字节编号,即为地址。指针即为地址,可以定义一个指针变量来存放地址:(类型)*(指针变量名)。之后可以通过指针来直接访问变量从而实现改变变量的作用。2,指针使用定义完后可以对指针赋值。可以使用&(变量名)来得到所要变量的地址,放入指针变量中。之后对指针变量进行解引用*操作即可。二,习题1,1470. 重新排列数组 - 力扣(LeetCode) (leetcode-cn.com)原创 2021-12-13 16:53:28 · 1276 阅读 · 10 评论 -
【万人千题】12.8C语言解题报告(关于不用加法的加法的那些事)
目录一,知识点1,主知识点2,补充知识点二,习题1,371. 两整数之和 - 力扣(LeetCode) (leetcode-cn.com)2,面试题 08.05. 递归乘法 - 力扣(LeetCode) (leetcode-cn.com)三,总结一,知识点1,主知识点 这是C语言打卡的第一篇,主要就是熟悉一下基本的输入输出,函数,一些基本的语法结构如:选择,循环等,预处理的指令等,一般刷题的都已经有一门语言的基础,这里就不多赘述,我们直接上题目。2,补充知识.原创 2021-12-08 22:45:02 · 829 阅读 · 7 评论 -
【万人千题】算法按位或进阶12.4总结报告
一:知识点初阶的总结在前一篇文章已经写过,如果不太理解,可以去看看:【万人千题】算法按位或12.3总结_C_Ryson的博客-CSDN博客进阶的我们来讲一讲应用的方法。在初阶中,我们讲到按位或可以处理一个数的某一位。那么这个特性也可以用在计数上,用这个位上的0,1来表示是否有存在。比如用在字符串上,如:用一个int型数前26位来表示一个字符串中是否出现过a~z的字母,将字符串的状态压缩成一个数字,这样就好比较两个字符串是否完全不同。ps:说到计数,这时候大家可能会想起打表,类似哈希表一样原创 2021-12-04 22:06:40 · 272 阅读 · 0 评论 -
【万人千题】C语言矩阵的转置12.4总结
一:知识点1,概念矩阵,在C语言中可以使用二维数组来表示,于是对于矩阵的一些运算,也可以用二维数组来进行。矩阵的转置实际上就是将矩阵的行元素和列元素以主对角线为对称轴进行交换,如1 2 3 4 主对角线为1,4.那么对其进行转置实际上就是将2和3对换。实际上也就是行列的交换.交换完如下:1 3 2 4 二:应用那么,在实际应用中该如何使用?首先矩阵是row行,col列的一个二维数组,那么转置的时候实际上也就是将行元素与列元素进行交换。或者.原创 2021-12-04 11:11:44 · 1026 阅读 · 0 评论 -
【万人千题】算法按位或12.3总结
一:知识点1,概念: 按位或(|),二元操作符,对两个整形数进行二进制位上的或运算真值表如下:左操作数 右操作数 值 1 0 1 1 1 1 0 1 1 0 0 0 总体来说就是:有一真即为真,两假才是假(C语言中默认0为假,非0为真)。2,应用:1.定位处理二进制位中的某一位比如,现在有一个数10010011101,我希望将它的二进制位的第5位,不论原先是什么,都变成1。(补充 一个小知识点:.原创 2021-12-03 17:35:21 · 1030 阅读 · 0 评论 -
【万人千题】C语言12.3反转字符串总结
目录一:知识点概念:二:习题及剖析反转字符串 - 反转字符串 - 力扣(LeetCode) (leetcode-cn.com)三:小总结一:知识点概念: 反转字符串就是将一个字符串的 最后一个字符与第一个字符交换,倒二个字符与第二个交换......直到所有的字符都被交换完毕。基本上用双指针就可以解决#include<stdio.h>#include<string.h>int main(){ char arr[] = "hel..原创 2021-12-03 16:45:02 · 1710 阅读 · 2 评论 -
【万人千题】C语言12.2计数总结报告
目录一:知识点1,概念2,应用这里给一个题目215. 数组中的第K个最大元素 - 力扣(LeetCode) (leetcode-cn.com)二:习题 448. 找到所有数组中消失的数字 - 力扣(LeetCode) (leetcode-cn.com)三:小总结242. 有效的字母异位词 - 力扣(LeetCode) (leetcode-cn.com)268. 丢失的数字 - 力扣(LeetCode) (leetcode-cn.com)389. ...原创 2021-12-02 11:41:49 · 515 阅读 · 2 评论 -
【万人千题】12.1算法:位与运算符
今天主要学习的是位与的运算符。通过学习,我们可以发现位数上的数与上一个1是不会改变的。如,位上原本是1,与1还是1,是0,与1还是0.同理,与上0就会改变。那么就有了一下几种用法:1,奇偶性的判定一般我们使用的是%2来判定。我们不妨对奇偶数的第一位二进制位分析一下。如果是偶数,那么第一位一定是0,因为二进制除了第一位都可以被2整除。而奇数的二进制第一位一定是0.那么运用这个特性我们就可以把偶数和奇数按位与上一个1。1除了第一位之外,其他全为0.而与上0,其他位不管是什么一定是0,就看第一位与原创 2021-12-01 22:45:10 · 319 阅读 · 0 评论 -
【万人千题】一些有关矩阵题目的解题报告
1,1351. 统计有序矩阵中的负数 - 力扣(LeetCode) (leetcode-cn.com)int countNegatives(int** grid, int gridSize, int* gridColSize){ int row=gridSize; int col=gridColSize[0]; int count=0; int i=0; for(i=0;i<row;i++) { int j=0;原创 2021-11-29 22:55:00 · 232 阅读 · 0 评论 -
【万人千题】C语言解题报告11.28
1,1295. 统计位数为偶数的数字 - 力扣(LeetCode) (leetcode-cn.com)int is(int n){ int bit=0; while(n) { n/=10; bit++; } return(bit%2==0);}int findNumbers(int* nums, int numsSize){ int i=0; int count=0; fo原创 2021-11-28 19:44:04 · 138 阅读 · 0 评论 -
【万人千题】算法解题报告11.28
1,242. 有效的字母异位词 - 力扣(LeetCode) (leetcode-cn.com)bool isAnagram(char * s, char * t){ int lens=strlen(s); int lent=strlen(t); char* cnts=(char*)malloc(sizeof(char)*26); char* cntt=(char*)malloc(sizeof(char)*26); memset(cnts,0,sizeof(c原创 2021-11-28 19:38:19 · 607 阅读 · 0 评论 -
【万人千题】算法多维枚举入门的解题报告
之前没做出来的题目又回去做了目录1,392. 判断子序列 - 力扣(LeetCode) (leetcode-cn.com)2,240. 搜索二维矩阵 II - 力扣(LeetCode) (leetcode-cn.com)3,2006. 差的绝对值为 K 的数对数目 - 力扣(LeetCode) (leetcode-cn.com)4,389. 找不同 - 力扣(LeetCode) (leetcode-cn.com)5,1431. 拥有最多糖果的孩子 - 力扣(LeetCode) (le原创 2021-11-26 17:39:16 · 327 阅读 · 0 评论 -
【万人千题】算法解题报告11.25
1,164. 最大间距 - 力扣(LeetCode) (leetcode-cn.com)int cmp(const void*e1,const void*e2){ if(*(int*)e1>=*(int*)e2) return 1; else return 0;}int maximumGap(int* nums, int numsSize){ if(numsSize<2) return 0; qsort(nums,num原创 2021-11-25 17:47:11 · 139 阅读 · 0 评论 -
【万人千题】算法11.24解题报告
1,88. 合并两个有序数组 - 力扣(LeetCode) (leetcode-cn.com)int cmp(const void*e1,const void*e2){ if(*(int*)e1<=*(int*)e2) return 0; else return 1;}void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n){ int i=m;原创 2021-11-24 11:35:20 · 244 阅读 · 0 评论 -
【万人千题】算法解题报告11.22
1,75. 颜色分类 - 力扣(LeetCode) (leetcode-cn.com)void sortColors(int* nums, int numsSize){ int i=0; for(i=0;i<numsSize;i++) { int j=0; int flag=0; for(j=0;j<numsSize-1;j++) { if(nums[j]>nums原创 2021-11-22 22:17:31 · 562 阅读 · 0 评论 -
【万人千题】C语言解题报告11.22
1,1837. K 进制表示下的各位数字总和 - 力扣(LeetCode) (leetcode-cn.com)int sumBase(int n, int k){ int ret[10000]={0}; int i=0; int count=0; int sum=0; while(n) { ret[i]=n%k; n=n/k; i++; count++; }原创 2021-11-22 15:31:25 · 343 阅读 · 0 评论 -
【万人千题】C语言解题报告11.21
1,剑指 Offer 15. 二进制中1的个数 - 力扣(LeetCode) (leetcode-cn.com)int hammingWeight(uint32_t n) { int count=0; int m=0; while(n!=0) { m=n%2; if(m==1) count++; n=n/2; } return count原创 2021-11-21 10:11:39 · 640 阅读 · 0 评论 -
leetcode392判断子序列
392. 判断子序列 - 力扣(LeetCode) (leetcode-cn.com)bool isSubsequence(char * s, char * t){ int len=strlen(s); int len2=strlen(t); int i=0; int j=0; while(*(s+i)!='\0') { if(*(s+i)==*(t+j)) { i++;原创 2021-11-20 19:30:19 · 176 阅读 · 0 评论 -
【万人千题】C语言解题报告11.19
1,面试题 01.01. 判定字符是否唯一 - 力扣(LeetCode) (leetcode-cn.com)bool isUnique(char* astr){ int len=strlen(astr); int i=0; for(i=0;i<=len;i++) { int j=0; for(j=i+1;j<=len;j++) { if(astr[i]==astr[j])原创 2021-11-19 13:16:57 · 148 阅读 · 0 评论 -
【万人千题计划11.18】C语言解题报告
1,判断国际象棋棋盘中一个格子的颜色1812. 判断国际象棋棋盘中一个格子的颜色 - 力扣(LeetCode) (leetcode-cn.com)bool squareIsWhite(char * coordinates){ int i=*(coordinates+1)-'0'; switch(*(coordinates)) { case'a': case'c': case'e': case'g原创 2021-11-18 13:32:07 · 295 阅读 · 0 评论