作者简介:一名双非本科大二网络工程专业在读,热衷编程,喜欢写作
鹏哥yyds,梦开始的地方☁️
接下来说一说我在C++这门编程语言的学习之路
接下来说说我在刷题上遇到的一些磨难与经历
ing namespace std;
int a[1100],dp[1100],ans,n;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i]; dp[i]=1;//初始状态
}
ans=1;
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
if(a[j]<a[i]){
dp[i]=max(dp[i],dp[j]+1);//状态转移 ans=max(ans,dp[i]);
}
}
}
cout<<ans<<endl; return 0;
}
const int N=XXX; void multi(int a[][N],int b[][N],int n)//方阵乘法
{
int c[N][N];
memset(c,0,sizeof c);
for(int i=1;i<=n;i++)
for(int k=1;k<=n;k++)
for(int j=1;j<=n;j++)
c[i][j]+=a[i][k]*b[k][j];
}
特别是这一段逻辑,思考了蛮久,具体代码就不展示了
for(int i=1;i<=n;i++)//矩阵乘法核心
{
for(int j=1;j<=n;j++) {
for(int k=1;k<=n;k++) {
res[i][j]+=a[i][k]*b[k][j];
res[i][j]%=mod;//取余
}
}
}
不仅是对于实验室中的题目有过痛哭的回忆,自己在其他刷题网站上也是坎坷重重
class Solution {
public:
vector<vector<int>> threeSum(vector<int>& nums) {
vector<vector<int>> result;
sort(nums.begin(),nums.end()); //返回不是下标,因而可以排序
//a + b + c = 0
//nums[i] = a nums[left] = b nums[right] = c
for(int i = 0;i < nums.size(); ++i)
{
if(nums[i] > 0) //因为是排过序的数组,前面一定是最小的,如果a > 0,则相加不可能为0
return result;
//对a去重
//要考虑到[-1,-1,2],若不写i > 0,则会略过这一种情况
// if(nums[i] == nums[i - 1]) continue;
if(i > 0 && nums[i] == nums[i - 1]) continue;
int left = i + 1; //左指针为i + 1
int right = nums.size() - 1; //右指针为nums.size() - 1
while(left < right)
{
//left和right不能相等,因为所求集合为三元组,若left == right,则指向统一元素
//此处不可对左右指针去重,否则会漏掉[0,0,0]这一种情况
// if(left < right && nums[left] == nums[left + 1]) left++;
// if(left < right && nums[right] == nums[right - 1]) right--;
//因排过序,为升序
if(nums[i] + nums[left] + nums[right] < 0)
left++; //左指针后移,取得更大数字
else if(nums[i] + nums[left] + nums[right] > 0)
right--; //右指针前移,取得更小数字
else{ //表示刚好取到一组之和为0的三个数
result.push_back(vector<int>{nums[i],nums[left],nums[right]});
//在获取一个三元组后,前后指针继续移动去重b,c
//需使用while,直到符合正确条件为止,因为b,c可能连着相等
while(left < right && nums[left] == nums[left + 1]) left++;
while(left < right && nums[right] == nums[right - 1]) right--;
//找到正确答案后,双指针同时收缩
left++;
right--;
}
}
}
return result; //返回最后的可能结果
}
};
我觉得编程和写作不仅是对我能力与技术的提升,而且对我的生活也造成了很大的影响,在写作和打代码之余,我也会去户外做做运动锻炼,加强体魄,而且时刻关注一些互联网数字大会之类的活动,有空的话也会去参加一下
这是我在家附近的公园的晨跑照,不得不说,早上跑步真的蛮好的,空气也好,没有人,大家如果有兴趣也可以多去户外晨跑锻炼哦
“学而不思则罔,思而不学则殆”
很喜欢《感动中国》里的一句话
“只有知识的积累,而没有深度思考,终究无法完整蜕变。”——《感动中国》年度热心观众,程序员囧辉
The limits of your language are the limits of your world
OK,讲到这里就说完了,这就是我在学习C/C++这条路上的技术、生活和人生的变化,人生在勤,不索何获,让我们一起努力,怀揣一个大梦想,迈向希望的彼岸