赞
踩
啊容我吐槽一下PAT,乙级比较宽容,看到时间限制在400ms时候,觉得很感动……然后比较烦的就是它的测试用例不可见,以至于我过不去不知道问题在哪,于是打开VS测试了很多遍觉得没问题,废了一点那时间……还有就是报错看起来有点累……还有头文件需要背……代码也需要背……
1001 害死人不偿命的(3n+1)猜想
N限制在了1000内,比较爽。基本上题干就是思路……
- #include <iostream>
- using namespace std;
- int main()
- {
- int a; int i = 0;
- cin >> a;
- while (a != 1)
- {
- if (a % 2 == 0)
- {
- a = a / 2;
- i++;
- }
- else
- {
- a = 3 * a + 1;
- a = a / 2;
- i++;
- }
- }
- cout << i;
- return 0;
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
犯了一个低级错误,第一次忘了while循环,所以直接if后直接结束!!这么蠢的错误,以后一定要避免!!
1002 写出这个数 (20 分)
也很简单……我记得力扣做过,记住了很大一部分。
- #include<iostream>
- #include <stack>
- using namespace std;
- int main()
- { stack<int>ans;
- string ss;cin>>ss;
- int count=0;
- int sum=0;int res;
- for(int j=0;j<ss.size();j++)
- {
- sum+=ss[j]-'0';
- }
- while(sum>=10)
- {
- res=sum%10;
- ans.push(res);
- sum=sum/10;
- count++;
- }
- ans.push(sum);
- count++;
- for(int i=count;i>0;i--)
- {
- res=ans.top();
- ans.pop();
- if(res==0)
- cout<<"ling";
- else if(res==1)
- cout<<"yi";
- else if(res==2)
- cout<<"er";
- else if(res==3)
- cout<<"san";
- else if(res==4)
- cout<<"si";
- else if(res==5)
- cout<<"wu";
- else if(res==6)
- cout<<"liu";
- else if(res==7)
- cout<<"qi";
- else if(res==8)
- cout<<"ba";
- else if(res==9)
- cout<<"jiu";
- if(i!=1)
- cout<<" ";
- }
- return 0;
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
思路上没有障碍,主要说说自己改良的点和错误的点。
首先前几次通不过去,主要是数超范围了,12345678909876543210123456789这个数好像long long都超了,这个问题力扣我是接触过的,之前的CSDN中也写到了,直接用string读入!!然后string-'0'直接获得各个位数……
这个我之前在文章里也强调过,有点印象,但是我觉得没必要,可是同志们,这样直接获得数字省了大把时间!!这第二次栽跟头了,记住了!
还有一点就是“哎哎哎就是那啥那啥啊啊啊啊我忘了怎么用”的一个方法,用在一一对应的转化上,就是数组下标和内容的对应关系,比如str[ling yi er san]对应下标是0 1 2 3 比用10句if看起来美观多了…
以上这两点是我遇见过然后忘记的内容,这次牢牢记下!
还有就是一些头文件,还有模板,慢慢自己总结,到时候往上套用就行了!
然后开始刷力扣,一上来就是一个困难题(合并k个列表)……反正我没打算能写出来,就想了一会儿看了解析(暴力法,两个两个合并……),根据暴力法自己改编了一下,然后在传参和定义函数那里出现了问题,借助评论改了一波,还有bug……明儿再改!!
贴个错误代码,希望明天改好!
- /**
- * Definition for singly-linked list.
- * struct ListNode {
- * int val;
- * ListNode *next;
- * ListNode(int x) : val(x), next(NULL) {}
- * };
- */
- class Solution {
- public:
- ListNode *merge( ListNode *l1,ListNode *l2)
- {
- ListNode* head=new ListNode(0);
- ListNode* ss=head;
- while(l1!=NULL&&l2!=NULL)
- {
- if(l1->val>=l2->val)
- {
- ss->next=l2;
- ss=ss->next;
- l2=l2->next;
- }
- else
- {
- ss->next=l1;
- l1=l1->next;
- ss=ss->next;
- }
- }
- if(l1!=NULL)
- ss->next=l1;
- else ss->next=l2;
- return head;
- }
-
- ListNode* mergeKLists(vector<ListNode*>& lists)
- { int l=lists.size();
- int i;
- for(i=0;i<l;i++)
- {
- if(i>0)
- lists[i+1]=merge( lists[i],lists[i+1]);
- }
- return lists[0];
- }
- };
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。