杂题
带点解题技巧的杂题集
zzcxxoo
这个作者很懒,什么都没留下…
展开
-
c++ /c 函数返回赋值语句
今天日常刷题居然发现函数可以返回赋值语句然后我居然不知道(我是真菜)#include<iostream>using namespace std;int test(int u){ return u=3;}int main(){ cout<<test(1);}输出的值是3还可以顺便帮数组赋值#include<iostream>int p[10];using namespace st..原创 2020-08-23 23:54:18 · 276 阅读 · 1 评论 -
三元组排序(重载运算符)
依照题意构造结构体,并且重载小于号,使结构体根据x的值排序,调用sort函数排序并输出#include<iostream>#include<cstring>#include<algorithm>using namespace std;const int N=10010;struct data{ int x; double y; string z; bool operator...原创 2020-06-01 22:49:06 · 626 阅读 · 0 评论 -
二进制中1的个数
该题让求二进制表示数中1的个数,由于负数在右移之后计算机会在开头一位自动补上1,所以负数右移将无法终止循环,需要将负数转成无符号整数class Solution {public: int NumberOf1(int _n) { int res=0; unsigned int n=_n; //负数右移后会在最高位补上1,无法结束循环 while(n){ ...原创 2020-06-01 18:44:54 · 88 阅读 · 0 评论 -
删除链表中所有重复的节点
题目意思让我们删除所有重复的节点,因为要全部删除,双指针当中的前指针不能再指向待比较节点了,并且头结点可能会被删除,因此我们创建一个虚拟节点让p指向dummy,q=p-next,作为工作指针,找到第一个与p-next值不相同的节点,此时分两种情况p,q中间间隔一个节点(即该段没有重复节点),说明下一个节点不用删除,此时让p指向下一个节点p,q间隔超过一个节点,此时将p->next=q删除多余节点/** * Definition for singly-linked list. * ...原创 2020-05-28 23:28:14 · 299 阅读 · 0 评论 -
翻转链表的递归实现
考虑翻转链表的递归实现递归算法实现通常使用整体的思想,而不去人为的考虑具体的细节例如本题实现的翻转链表函数,我们考虑该函数的本身的功能—输入头结点,翻转该链表,并将新的头结点返回因此该题具体实现如下先考虑边界情况,当链表是空或者一个节点时,直接返回即可当实现最后一步时,类似DP的考虑方式,调用reverseList(head->next)即可翻转以head->next为开头的链表,并且得到他的头结点,如1->2->3->4->5,调用完reverse函数即...原创 2020-05-27 22:46:32 · 149 阅读 · 0 评论 -
字符串乘方
根据题意,我们从大到小枚举所有可能的n(n一定被len整除),根据枚举的n,找到字符串截取片段长度m=len/n将从0截取的字符串拼接n次,如果它等于原串,则是要找的答案#include<iostream>#include<cstring>using namespace std;int main(){ string str; while(cin>>str &&str!="."){ ...原创 2020-05-18 22:25:58 · 343 阅读 · 0 评论 -
单词替换
做之前不知道有个字符串输入流(stringstream)可以读取字符串中的整除串#include<iostream>#include<sstream>#include<cstring>using namespace std;int main(){ string s,a,b; getline(cin,s); cin>>a>>b; stringstrea...原创 2020-05-11 23:43:56 · 101 阅读 · 0 评论 -
蛇形矩阵
观察到数组每次行走到’撞墙’时就会变更一次方向,并且每次变更方向的顺序是一定的右→下→左→上→右...联想到处理dfs问题的基本方案方向数组#include<iostream>using namespace std;const int N=110;int s[N][N];int main(){ int n,m; cin&...原创 2020-05-01 00:33:01 · 116 阅读 · 0 评论 -
输出平方矩阵
对于每一个点,其数据应当是其到四条边距离的最小值即value=min(min(i,j),min(n-i+1,n-j+1))(+1算上自己本身的距离)#include<iostream>#include<cmath>using namespace std;int main(){ while(1){ i...原创 2020-04-26 00:12:08 · 263 阅读 · 0 评论 -
输出菱形
输出菱形的巧妙写法定位到菱形的正中心点(n/2,n/2),观察到所有*与中心的距离的绝对值都小于等于n/2即abs(i-n/2)+abs(j-n/2)<=n/2#include<iostream>#include<cmath>using namespace std;int main(){ int n; ci...原创 2020-04-21 10:45:32 · 119 阅读 · 0 评论