
算法
通过一些算法题目,对编程知识和编程思想进行整理。
枸杞饭团
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
(leeetcode 300)C++动态规划实现最长上升子序
题目描述给定一个无序的整数数组,找到其中最长上升子序列的长度。思路官网给出了动态规划的方法,初学动态规划,比较巧妙,但是时间复杂度比较高,为O(n2)动态规划的思想定义 dp[i],dp[i] 为考虑前 i元素,以第 i个数字结尾的最长上升子序列的长度,注意 nums[i] 必须被选取。(定义非常重要!)#include<algorithm>class Solution...原创 2020-03-14 14:47:13 · 164 阅读 · 0 评论 -
(leetcode13)C++实现罗马数字转整数
思路一个字符串如果左边的值小于右边的值,就减,若大于右边的值就加。罗马数字转换为阿拉伯数字的时候,实际上是从左到右将每个字符对应的值累加的过程。例如“XVI”,实际就是10(X)+5(V)+1(I)。只不过由于存在特殊规则增加了这个过程的复杂,不过同样可以用上面的思路解决。举个例子,“IX”,可以看作是-1+10=9;“XIX”可以看作是10-1+10=19。题目又告诉我们,通常情况下,罗...原创 2020-03-14 12:24:53 · 338 阅读 · 0 评论 -
(leetcode9)C++解决回文数问题
对于回文数,其实判断起来十分简单,自己看到这道题的第一个想法就是把每一位取出来放在一个向量中,之后比较向量的第一位和最后一位,如果相等就弹出,继续循环。如果最后的向量为空,就代表是回文数,如果非空,就不是。十分暴力#include<vector>using namespace std;class Solution {public: bool isPalindrome(i...原创 2020-03-13 14:15:15 · 375 阅读 · 0 评论 -
(leetcode7.8)字符串转换整数
请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽...原创 2020-03-10 15:21:37 · 290 阅读 · 0 评论 -
(leetcode1)C++用vector写两数相加以及vector的多维向量使用
C++写两数相加应该是所有程序里最简单的程序,leetcode第一题用vector写感觉还比较有意思,和栈的感觉很像,vector和数组相比具有更加灵活的特性。#include<vector>#include<iostream>using namespace std;class Solution {public: vector<vector<i...原创 2020-02-28 21:28:05 · 1206 阅读 · 0 评论 -
(leetcode basic)补码的取值范围的理解
对于补码取值范围的理解对不补码的取值范围其实一直都有疑惑,单独算补码很好算,但是一旦涉及到边界,涉及到0,-128这样的补码,就会有纠结,本文通过吸取别人的经验用一个简单的理解把补码的范围记录一下。128的补码为什么是1000 00008位二进制的原值表达范围为:-127至127共有256个组合序列 0000 0000 至1111 1111 。+128的原值在8位中是表达不出来的。8位...转载 2020-01-02 15:47:17 · 6906 阅读 · 2 评论 -
(leetcode169)C++解决多数元素问题以及迭代器和map的使用
首先先对Map的使用做一个简单的总结。Map是c++的一个标准容器,她提供了很好一对一的关系。Map中构造方式为 map<string , int >mapstring; map<int ,string >mapint; map<sring, char>mapstring; map< char ,string...原创 2020-03-13 17:35:33 · 460 阅读 · 0 评论