学习编程就得循环渐进,扎实基础,勿在浮沙筑高台
循环渐进Forward-CSDN博客
目录
循环渐进Forward-CSDN博客
添加逗号
思路:
代码实现:
跳台阶
思路:
代码实现:
扑克牌顺子
思路:
代码实现:
添加逗号
牛客网做题链接:添加逗号_牛客题霸_牛客网 (nowcoder.com)
思路:
一道简单的模拟题,有很多位数的数字可以看作字符串,将图画出来发现,当位数只有6(其中一种情况)位时都好会放在字符串结尾,因此需要限制。
代码实现:
#include <iostream>
using namespace std;int main() {string s;cin>>s;string ret;int n=s.size();for(int i=0;i<n;i++){ret+=s[i];if((n-i-1)%3==0 && i!=n-1){ret+=',';}}cout<<ret<<endl;return 0;
}
跳台阶
牛客网做题链接:跳台阶_牛客题霸_牛客网 (nowcoder.com)
思路:
递归的思想,当台阶为一阶时有一种跳法,当台阶为二阶有两种跳法,当台阶为n阶时,可以从最后一步来考虑,如果最后一步跳一阶,前面有f(n−1)种跳法,
如果最后一步跳两阶的话,前面有f(n−2)种跳法.
f(0)=1 (0阶台阶有1种跳法,0阶乘=1)
f(1)=1
f(2)=2
f(n)=f(n−1)+f(n−2)
代码实现:
class Solution {public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param number int整型* @return int整型*/int jumpFloor(int number) {if (number < 2) return 1;vector<int> dp(number + 1);dp[0] = 1;dp[1] = 1;for (int i = 2; i <= number; i++) {dp[i] = dp[i - 1] + dp[i - 2];}return dp[number];}
};
扑克牌顺子
牛客网做题链接:扑克牌顺子_牛客题霸_牛客网 (nowcoder.com)
思路:
有两种做法,1、排序+模拟;2、规律
第一种需要先对给出数组进行排序,找出数与数之间的差额,若差额过大则返回false反之返回true。
第二种找出顺子的规律,因题目限制顺子数仅为5个,因此顺子中最大数与最小数相减不可能大于4,再进行分类讨论防止出现相同的数字。
代码实现:
#include <algorithm>
class Solution {bool hash[14]={0};
public:bool IsContinuous(vector<int>& numbers) {int max1=0,min1=14;for(auto s: numbers){if(s){if(hash[s])return false;hash[s]=true;max1=max(max1,s);min1=min(min1,s);}}return max1-min1<=4;}
};
学习编程就得循环渐进,扎实基础,勿在浮沙筑高台