① 股票卖出技巧
买卖股票需要有股票账户,要到证券公司办理开户,在交易软件上点击需要卖出的股票,输入卖出数量,点击确定即可卖出。
买卖股票需要有股票账户才可以,开户流程如下:
1、到证券公司开户,办理上证或深证股东帐户卡、资金账户、网上交易业务、电话交易业务等有关手续。然后,下载证券公司指定的网上交易软件。
2、到银行开活期帐户,并且通过银证转账业务,把钱存入银行。
3、通过网上交易系统或电话交易系统等系统把钱从银行转入证券公司资金账户。
4、在网上交易系统里或电话交易系统买卖股票。
5、手续费在100元左右(每家证券公司是不同的)。股市低迷时,一般免费开户。
6、买股票必须委托证券公司代理交易,股票不可以直接到上海证券交易所买卖。
拓展资料:
1. 股票是股份制企业(上市和非上市)所有者(即股东)拥有公司资产和权益的凭证。上市的股票称流通股,可在股票交易所(即二级市场)自由买卖。非上市的股票没有进入股票交易所,因此不能自由买卖,称非上市流通股。
2. 这种所有权为一种综合权利,如参加股东大会、投票标准、参与公司的重大决策、收取股息或分享红利等,但也要共同承担公司运作错误所带来的风险。
3.股票是一种有价证券,是股份公司在筹集资本时向出资人发行的股份凭证,代表着其持有者(即股东)对股份公司的所有权。股票是股份证书的简称,是股份公司为筹集资金而发行给股东作为持股凭证并借以取得股息和红利的一种有价证券。每股股票都代表股东对企业拥有一个基本单位的所有权。股票是股份公司资本的构成部分,可以转让、买卖或作价抵押,是资金市场的主要长期信用工具。
3. 证券交易规则
一、交易时间
周一至周五 (法定休假日除外)
上午9:30 --11:30
下午1:00 -- 3:00
二交易单位
(1) 股票的交易单位为“股”,100股=1手,委托买入数量必须为100股或其整数倍;
(2) 基金的交易单位为“份”,100份=1手,委托买入数量必须为100份或其整数倍;
(3) 国债现券和可转换债券的交易单位为“手”,1000元面额=1手,委托买入数量必须为1手或其整数倍;
(4)当委托数量不能全部成交或分红送股时可能出现零股 (不足1手的为零股),零股只能委托卖出,不能委托买入零股。
四、报价单位
股票以“股”为报价单位;基金以“份”为报价单位;债券以“手”为报价单位。例:行情显示“深发展A”30元,即“深发展A”股现价30元/股。交易委托价格最小变动单位:A股、基金、债券为人民币0.01元;深B为港币0.01元;沪B为
美元0.001元;上海债券回购为人民币0.005元。
五、涨跌幅限制
在一个交易日内,除首日上市证券外,每只证券的交易价格相对上一个交易日收市价的涨跌幅度不得超过10%,超过涨跌限价的委托为无效委托。
六、"ST"股票
在股票名称前冠以“ST”字样的股票表示该上市公司最近两年连续亏损,或亏损一年,但净资产跌破面值、公司经营过程中出现重大违法行为等情况之一,交易所对该公司股票交易进行特别处理。股票交易日涨跌幅限制5%。
② 股票买卖操作流程
一、股票买卖操作流程
1、股票的交易过程包括了开立股东代码卡以及资金账号,同时通过银证转账将资金转移进去,然后才能够进行股票委托交易。
2、投资人可以凭借着个人身份证件,在全国的任何一家证券公司营业部门代理开户,上海证券交易所股东卡手续费用为40元人民币,深圳证券交易所股东卡的手续费用为50元人民币。
3、凭着身份证和股东卡账户到证券公司营业部门开立资金账户,上海证券交易市场的股东卡只能在一家证券公司开立资金账户,深圳证券交易市场没有限制。
4、买卖股票的资金不能直接存入证券公司资金账户必须通过银行转账,所以必须要有银行活期账户和证券资金账户绑定双向转账,到银行开通银证转账业务。
5、委托买卖股票的方式有营业部门委托、电话委托、网上委托,网上委托必须使用证券公司营业部专用的委托软件,可以在证券公司网站上下载委托软件,股票买入必须是一百股或者是整数倍,卖出没有任何的限制可以不是整数卖出。
6、进入股票买入页面之后,首先在账户名称处选择操作账户输入股票代码,选择好了之后会出现想要买入的股信息,从这就可以查看到选定的账户类别、股票代码、买入价格、买入股数、以及该股票的真实行情。
7、最后输入买入的价格(不能超过该股当日涨跌幅限制)以及买入数量(100的倍数)。点击买入即可下单成功。当股价小于或等于买入的价格系统就会自动成交。卖出就点卖出键,操作一样。
二 、炒股注意事项
1、炒股一定要具备良好的心态。股市是会有风险的有盈利就会有亏损,所以心态要放好。跌了我们就采取措施就好了。
2、炒股要有专业的知识。盲目跟风、道听途说、连K线图都看不懂就入市跟赌博没什么区别势必很难在股市里盈利。最起码要具备专业的炒股知识。
3、不能贪婪。盈利的时就想多赚一点就不顾一切买入,亏损的时就也拼命买入想早点回本,这种做法是不对的。作为业余的炒手,可以给自己定个价位,到了这个价位点就可以卖出盈利,盲目追求暴利,往往风险很高,做到适可而止才是明智的选择。
4、要有耐心。抄底,追涨杀跌,没有持股的耐心,反反复复进出股市你会发现这样很容易亏损。所以要有持股的耐心。
5、不要轻于相信小道消息。小道消息往往是股庄放出的反面消息,是给散户设的圈套。不能一听到利好消息就拼命的买入,反之就卖出。但消息是难以免避免的,我们要学会去辨别去分析。
(2)买卖股票3leetcode扩展阅读:
股票市场也称为二级市场或次级市场,是股票发行和流通的场所,也可以说是指对已发行的股票进行买卖和转让的场所。股票的交易都是通过股票市场来实现的。
一般地,股票市场可以分为一、二级,一级市场也称股票市场之为股票发行市场,二级市场也称之为股票交易市场。 股票是一种有价证券。有价证券除股票外,还包括国家债券、公司债券、不动产抵押债券等等。
③ 103. leetcode笔记(1~60)
d1
https://leetcode-cn.com/problems/two-sum
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
【hashmap存储】
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。
请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。
nums1 = [1, 2]
nums2 = [3, 4]
则中位数是 (2 + 3)/2 = 2.5
【奇偶判断】
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
输入: "babad"
输出: "bab"
注意: "aba" 也是一个有效答案。
【双循环贪心】
d2
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
输入: 121
输出: true
【折半比较】
给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。
在构造过程中,请注意区分大小写。比如 "Aa" 不能当做一个回文字符串。
注意:
假设字符串的长度不会超过 1010。
示例:
输入:
"abccccdd"
输出:
7
【集合更新与判空】(add remove, 放入可回文的字符,无重复)
给你一个字符串 s 和一个字符规律 p ,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。
'.' 匹配任意单个字符
'*' 匹配零个或多个前面的那一个元素
所谓匹配,是要涵盖 **整个 **字符串 s 的,而不是部分字符串。
说明:
【正则包与结果项】
d3
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
示例:
给定数组 nums = [1,1,2],
函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。
你不需要考虑数组中超出新长度后面的元素。
【新计数索引】
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
示例:
给定 nums = [3,2,2,3], val = 3,
函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。
你不需要考虑数组中超出新长度后面的元素。
【while val存在】
实现 strStr() 函数:
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。
示例:
输入: haystack = "hello", needle = "ll"
输出: 2
【str.index(p)】
d4
【分支递归乘数】
给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。
给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange()
sumRange(0, 2) -> 1
sumRange(2, 5) -> -1
sumRange(0, 5) -> -3
【缓存和】
给定一个二进制数组,你可以最多将 1 个 0 翻转为 1,找出其中最大连续 1 的个数。
输入:[1,0,1,1,0]
输出:4
解释:翻转第一个 0 可以得到最长的连续 1。
当翻转以后,最大连续 1 的个数为 4。
【最近0的出现位置】
d5
对于一个 正整数,如果它和除了它自身以外的所有正因子之和相等,我们称它为“完美数”
输出: True
解释: 28 = 1 + 2 + 4 + 7 + 14
【折平根比较】
修改一个数,则变成非递减数列,输出True
【嵌套条件分支】
123456789101112...求出第N个数字对应的单字符数值
【while True中的数量级t和求解条件m】
d6
列表中存在最大长度为k的两个相等的数,则返True
给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。如输入: nums = [1,2,3,1], k = 3, 输出: true
【集合表示滑动窗口】
【双指针追踪】
两个数不是同一个数,存在某数2倍数的一个数则返回True
【判双零】
d7
两个数值型字符串,相加后返回结果字符串
【while中低位进位】
求节点与其祖先之间的最大差,如:
【左右递归dfs返回最大差】
一排人领糖果, 相邻的人rating高的获得较多糖,每人都有糖果。
老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。
你需要按照以下要求,帮助老师给这些孩子分发糖果:
每个孩子至少分配到 1 个糖果。
相邻的孩子中,评分高的孩子必须获得更多的糖果。
那么这样下来,老师至少需要准备多少颗糖果呢?如输入: [1,0,2], 输出: 5
解释: 你可以分别给这三个孩子分发 2、1、2 颗糖果。
【左右规则】
d8
返回链表中倒数第k个节点值
【双指针追踪】
是否平衡二叉树,即任意一个节点其两颗子树的高度差不超过一。
【递归返回是否平衡和树高】
【三重while中低位进位】
d9
删除链表中的节点
【制造伪头结点】
之字形层次遍历二叉树,如:
【递归含层数的层次遍历与折返判断】
如果一个数的左边数组和与右边数组和相等,则返回此中间数的索引。
【从左累加与总和比较】
d10
输出二叉树的镜像, 如:
【制造临时节点的自身递归】
自底向上遍历二叉树,如:
【递归层次遍历】
【含hashmap[depth]的dfs递归】
d11
返回除法结果,不越界[-2**31, 2**31-1]
【正负/零划分】
一个数的二进制表示中1的个数
【带奇偶判断的逐右移位】
移除所有值为val的节点,返回链表。如输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5
【含有目标比较的自身递归】
d12
实现int sqrt(int x)函数
【牛顿迭代】
【两次判空与全存在的各自相加】
求出根到叶子节点路径总和为固定值的所有路径集
【目标递减下叶子和当前更新的路径和与目标值的比较】
d13
数组中是否有独一无二的出现次数
【hashmap计数与值数组判重】
给定一个无序的整数数组,找到其中最长上升子序列的长度。如输入: [10,9,2,5,3,7,101,18]
输出: 4 ,解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。
【双循环动态规划】
【递归判断】
d14
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。
注意你不能在买入股票前卖出股票。如输入: [7,1,5,3,6,4]
输出: 5
解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。
【最低股价与最大利润同时更新】
输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。
要求时间复杂度为O(n)。如输入: nums = [-2,1,-3,4,-1,2,1,-5,4]
输出: 6, 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
【max0 sum0初始索引0赋值,与sum0>0判断】
给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。如输入: n = 12
输出: 3 ,解释: 12 = 4 + 4 + 4
【动态规划双循环解背包问题】
d15
统计所有小于非负整数 n 的质数的数量。如输入: 10
输出: 4,解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。
【筛去法】
找出第 n 个丑数。
丑数就是只包含质因数 2, 3, 5 的正整数。如输入: n = 10
输出: 12, 解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。
【三指针动态规划】
给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;非负整数 fee 代表了交易股票的手续费用。
你可以无限次地完成交易,但是你每次交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。
返回获得利润的最大值。如输入: prices = [1, 3, 2, 8, 4, 9], fee = 2
输出: 8,解释: 能够达到的最大利润:
在此处买入 prices[0] = 1
在此处卖出 prices[3] = 8
在此处买入 prices[4] = 4
在此处卖出 prices[5] = 9
总利润: ((8 - 1) - 2) + ((9 - 4) - 2) = 8.
【买入卖出的动态规划】
d16
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
如输入: [7,1,5,3,6,4]
输出: 7
解释:
在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出,
这笔交易所能获得利润 = 5-1 = 4 。
随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,
这笔交易所能获得利润 = 6-3 = 3 。
【同leet714 多次买卖的动态规划】
是否是相同的树
【同空、不同空判断后的自身递归】
不特定根节点和叶子节点,返回路径总和为固定值的路径数
【自身递归与dfs递归】
d17
找出右边的值小于当前值的数的个数:
使用线段树构建左右子树,并从右到左计算前面的数小于当前值的数的个数,最终返回依次进入结果数组的list的倒置值。
【list复制法】
将遍历到的前两个和数都去掉,双重遍历T(n)= O(n)
规范的路径表示写法转换为最简路径
【栈进栈出,判断'' '.' '..'()】
d18
【复制字符库,逐次后移匹配库起始点】
按要求分一个数组为m份,求其中子数组的最大值中最小一个
【二分查找、设定子数组最大的和mid作划分节点】
【二分思想,拆分数组递归】(不用判断平衡)
d19(52%)
两个字符串对应位置移动总次数在指定步数内(ascii值的差),求字符串的最大可变换长
【滑窗记录更新最初位置、不断更新当前滑窗内移动步数最小值】
④ 如何买入或卖出股票
1、挑选着正确的买进卖出时机
买进时机主要有四个:
(1)日K线显示某股票下跌二浪之后小幅波动,量缩至其流通股的千分之五以下,最好这样缩量盘整三天以上,或者在此区域阴线阳线交错,量能均衡且比前几日有所放大、可介入。
(2)如某股票最好跌至两年来的底部,即使跌破历史低价,也只是瞬间,其实是庄家在刻意打压吸筹,应果断买进。
(3)某股票小阴小阳或中阳一路稳步爬升,且有一段不小的涨幅,某一天(该股没有什么利空)突然出现一根下跌型的中阴或长阴,十有八九是庄家在震荡洗筹,可适当跟进。
(4)特别注意那些流通股在3500万以下,每股预期年化预期收益在0.40元以上的小盘绩优次新股,由于其极强的股本扩张能力,深得主力青睐,只要市盈率在30倍以下,当股价回落时,便可吸纳,中长线必有不俗的回报。
卖出时机主要也有四个:
(1)那些一年来没有动作过,而今有庄介入的个股,一般涨幅都会超过50%,多数可达100%。慎重的投资者可在最低价上涨50%时抛出,进取型的可继续持筹看涨,在股价创下某高点后回落,跌幅超10%时获利了结。
(2)如某股票某天莫名其妙地拉出一根长红,且放巨量(达到其流通股的10%以上),第二天一早可马上出局。
(3)某股票已有一段较大的涨幅,许多报纸和股评人士在圈点介绍之时,也是该派发的时候了。
(4)不赌最低点买进、最高点抛出,但求心平气和,买进股票后可定下一个标准,到心理价位后即可抛出,即使离场后还在上涨,也不必懊悔,毕竟你是股海中随波逐流的一叶小舟,根本无法与庄家抗争。
2、股票买进卖出的渠道
(1)当面委托。即委托人以面对面的形式当面委托证券商,确定具体的委托内容与要求,由证券商受理股票的买卖。
(2)电话委托。即委托人以电话形式委托证券商,确定具体的委托内容和要求,由证券商、经纪人受理股票的买卖交易。
(3)电传委托。即委托人通过发电传给证券商,确定具体的委托内容和要求,委托证券商代理买卖股票。
(4)传真委托。即委托人以传真的形式,将确定的委托内容与要求传真给证券商,委托他们代理买卖股票交易。
(5)信函委托。即委托人用信函形式,将确定的委托内容和要求告知证券商,并委托他们代办买卖股票的交易。
我国深圳、上海主要是当面委托。当面委托一般要委托人加以确认,受托证券商才予办理委托手续,而电话委托,则必须在证券商具备录音电话的条件下,才可办理。委托人以电话委托买卖成交后应补交签章,如有错误原因不是由证券商造成的,证券商不负责任。
3、网上买卖股票具体操作
只要你输入股票代码,股票价格和数量就能买入,注意最少买入100股,而且买入必须是100股的倍数。
等股票上涨到一定价格,你输入股票代码,股票价格和数量就能卖出,卖出没有数量的限制。
比如一个股票现在10元,卖1的挂单是10元,卖2 的挂单是10.01元,卖3的挂单是10.02元,买1的挂单是9.99元,买2的挂单是9.98元,买3的挂单是9.97元。只要你根据卖1的价格输入10元的价格买入就能成交,你输入卖2或者卖2的价格进行买入,成交价格也是10元,因为遵循价格优先,数量优先的原则。而你输入9.99或者以下的价格就不能立刻成交,需要价格跌到9.99和以下的价格才能成交。卖出同样道理。
⑤ leetcode算法
*最近在做一些 leetcode 的算法题,我会将自己做过的算法题记录下来以供大家参考,如果查找不方便请看 油猴插件实现网站左侧目录生成。
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在 原地修改输入数组 并在使用 O(1) 额外空间的条件下完成。
示例:
解答:
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
示例:
提示:
解答:
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。
示例:
说明:
解答:
给定一个整数数组,判断是否存在重复元素。
如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。
示例:
解答:
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
示例:
解答:
给定两个数组,编写一个函数来计算它们的交集。
示例:
说明:
进阶:
解答:
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
示例:
解答:
给定一个数组 nums ,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
示例:
说明:
给定一个整数数组 nums 和一个目标值 target ,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
示例:
解答:
判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。
数独部分空格内已填入了数字,空白格用 '.' 表示。
示例:
说明:
解答:
给定一个 *n *× *n* 的二维矩阵表示一个图像。
将图像顺时针旋转 90 度。
说明:
你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。 请不要 使用另一个矩阵来旋转图像。
示例:
解答:
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。
不要给另外的数组分配额外的空间,你必须 原地修改输入数组 、使用 O(1) 的额外空间解决这一问题。
你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。
示例:
解答:
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例:
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
解答:
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
示例:
解答:
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
长度一样,包含的字母都一样,每个字符出现的频率也一样,只是顺序不同而已,这就属于异位词,
示例:
说明:
你可以假设字符串只包含小写字母。
进阶:
如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?
解答:
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明 :本题中,我们将空字符串定义为有效的回文串。
示例:
解答:
请你来实现一个 atoi 函数,使其能将字符串转换成整数。
首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:
注意 :假如该字符串中的第一个非空格字符不是一个有效整数字符、字符串为空或字符串仅包含空白字符时,则你的函数不需要进行转换,即无法进行有效转换。
在任何情况下,若函数不能进行有效的转换时,请返回 0 。
提示 :
示例:
解答:
实现 strStr() 函数。
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始) 。如果不存在,则返回 -1 。
示例:
说明:
当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。
对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与C语言的 strstr() 以及 Java的 indexOf() 定义相符
解答:
“外观数列”是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下:
1 被读作 "one 1" ("一个一") , 即 11 。
11 被读作 "two 1s" ("两个一") , 即 21 。
21 被读作 "one 2", "one 1" ("一个二" , "一个一") , 即 1211 。
给定一个正整数 n(1 ≤ n ≤ 30),输出外观数列的第 n 项。
注意 :整数序列中的每一项将表示为一个字符串。
示例:
解答:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 "" 。
示例:
说明:
所有输入只包含小写字母 a-z 。
解答:
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。
现有一个链表 -- head = [4,5,1,9],它可以表示为:
示例:
说明:
解答:
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
示例:
说明:
给定的 n 保证是有效的。
进阶:
你能尝试使用一趟扫描实现吗?
解答:
反转一个单链表。
示例:
解答:
将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
解答:
请判断一个链表是否为回文链表。
示例:
解答:
给定一个链表,判断链表中是否有环。
为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1 ,则在该链表中没有环。
示例:
解答:
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明 : 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7] ,
返回它的最大深度 3 。
解答:
给定一个二叉树,判断其是否是一个有效的二叉搜索树。
假设一个二叉搜索树具有如下特征:
示例:
解答:
给定一个二叉树,检查它是否是镜像对称的。
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
解答:
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
示例:
二叉树: [3,9,20,null,null,15,7] ,
返回其层次遍历结果:
解答:
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。
本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。
示例:
给定有序数组: [-10,-3,0,5,9] ,
一个可能的答案是: [0,-3,9,-10,null,5] ,它可以表示下面这个高度平衡二叉搜索树:
解答:
给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。
说明:
示例:
解答:
你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。
假设你有 n 个版本 [1, 2, ..., n] ,你想找出导致之后所有版本出错的第一个错误的版本。
你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。
示例:
解答:
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意 :给定 n 是一个正整数。
示例:
解答:
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。
注意 :你不能在买入股票前卖出股票。
示例:
解答:
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
示例:
解答:
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。
给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。
示例:
解答:
打乱一个没有重复元素的数组。
示例:
解答:
设计一个支持 push , pop , top 操作,并能在常数时间内检索到最小元素的栈。
示例:
解答:
写一个程序,输出从 1 到 n 数字的字符串表示。
示例:
解答:
统计所有小于非负整数 n 的质数的数量。
示例:
解答:
给定一个整数,写一个函数来判断它是否是 3 的幂次方。
示例:
解答:
罗马数字包含以下七种字符: I , V , X , L , C , D 和 M 。
例如,罗马数字 2 写做 II ,即为两个并列的 1 。 12 写做 XII ,即为 X + II 。 27 写做 XXVII , 即为 XX + V + II 。
通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII ,而是 IV 。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX 。这个特殊的规则只适用于以下六种情况:
示例:
解答:
编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为 汉明重量 )。
示例:
提示:
⑥ 如何交易老三板的股票
老三板股票交易规则:
三板交易的时间是每周的星期一、星期三、星期五,转让委托申报时间为上午9:30至11:30,下午1:00至3:00;之后以集合竞价方式进行集中配对成交。
委托方式可采用柜台委托、电话委托、互联网委托等。所有委托指令均以集合竞价方式配对成交。股份转让价格实行涨跌幅限制,涨跌幅比例限制为前一转让日转让价格的5%。
比如,如果要买400001大自然,可以在交易时间内(当然也可以参与集合竞价)买入,买入后成交与否,不像A股可以立马看见的,要等到下午3点才能知道是否成交。三板当天的涨跌情况你可以在10点30分看到盘中情况。
(6)买卖股票3leetcode扩展阅读:
老三板的股票交易具体流程:
1、开设帐户,顾客要买卖股票,应首先找经纪人公司开设帐户。
2、传递指令,开设帐户后,顾客就可以通过他的经纪人买卖股票。每次买卖股票,顾客都要给经纪人公司买卖指令,该公司将顾客指令迅速传递给它在交易所里的经纪人,由经纪人执行。
3、成交过程,交易所里的经纪人一接到指令,就迅速到买卖这种股票的交易站(在交易厅内,去执行命令。
4、交割,买卖股票成交后,买主付出现金取得股票,卖主交出股票取得现金。交割手续有的是成交后进行,有的则在一定时间内,如几天至几十天完成,通过清算公司办理。
5、过户,交割完毕后,新股东应到他持有股票的发行公司办理过户手续,即在该公司股东名册上登记他自己的名字及持有股份数等。完成这个步骤,股票交易即算最终完成。
⑦ LeetCode热题100
1.两数之和 简单
https://leetcode-cn.com/problems/two-sum/
15. 三数之和 中等
https://leetcode-cn.com/problems/3sum/
49. 字母异位词分组 中等
https://leetcode-cn.com/problems/group-anagrams/
56. 合并区间 中等
https://leetcode-cn.com/problems/merge-intervals/
148. 排序链表 中等
https://leetcode-cn.com/problems/sort-list/
1.两数之和 简单
https://leetcode-cn.com/problems/two-sum/
128. 最长连续序列 中等
https://leetcode-cn.com/problems/longest-consecutive-sequence/
438. 找到字符串中所有字母异位词 中等
https://leetcode-cn.com/problems/find-all-anagrams-in-a-string/
448. 找到所有数组中消失的数字 简单 原地存储次数
https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array/
2.两数相加 中等
https://leetcode-cn.com/problems/add-two-numbers/
21. 合并两个有序链表 简单
https://leetcode-cn.com/problems/merge-two-sorted-lists/
22. 括号生成 中等
https://leetcode-cn.com/problems/generate-parentheses/
23. 合并K个升序链表 困难
https://leetcode-cn.com/problems/merge-k-sorted-lists/
39. 组合总和 中等
https://leetcode-cn.com/problems/combination-sum/
46. 全排列 中等
https://leetcode-cn.com/problems/permutations/
48. 旋转图像 中等
https://leetcode-cn.com/problems/rotate-image/
78. 子集 中等
https://leetcode-cn.com/problems/subsets/
105. 从前序与中序遍历序列构造二叉树 中等
https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/
114. 二叉树展开为链表 中等
https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list/
3. 无重复字符的最长子串 中等
https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/
4. 寻找两个正序数组的中位数 困难
https://leetcode-cn.com/problems/median-of-two-sorted-arrays/
11. 盛最多水的容器 中等
https://leetcode-cn.com/problems/container-with-most-water/
15. 三数之和 中等
https://leetcode-cn.com/problems/3sum/
31. 下一个排列 中等
https://leetcode-cn.com/problems/next-permutation/
55. 跳跃游戏 中等
https://leetcode-cn.com/problems/jump-game/
75. 颜色分类 中等
https://leetcode-cn.com/problems/sort-colors/
76. 最小覆盖子串 困难
https://leetcode-cn.com/problems/minimum-window-substring/
283. 移动零 简单
https://leetcode-cn.com/problems/move-zeroes/
581. 最短无序连续子数组 中等
https://leetcode-cn.com/problems/shortest-unsorted-continuous-subarray/
32. 最长有效括号 困难
https://leetcode-cn.com/problems/longest-valid-parentheses/
42. 接雨水 困难
https://leetcode-cn.com/problems/trapping-rain-water/
53. 最大子序和 简单
https://leetcode-cn.com/problems/unique-paths/
70. 爬楼梯 简单
https://leetcode-cn.com/problems/climbing-stairs/
96. 不同的二叉搜索树 中等
https://leetcode-cn.com/problems/unique-binary-search-trees/
121. 买卖股票的最佳时机 简单
https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/
139. 单词拆分 中等
https://leetcode-cn.com/problems/word-break/
152. 乘积最大子数组 中等
https://leetcode-cn.com/problems/maximum-proct-subarray/
198. 打家劫舍 中等
https://leetcode-cn.com/problems/house-robber/
279. 完全平方数 中等
https://leetcode-cn.com/problems/perfect-squares/
300. 最长递增子序列 中等
https://leetcode-cn.com/problems/longest-increasing-subsequence/
309. 最佳买卖股票时机含冷冻期 中等
https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/
337. 打家劫舍 III 中等
https://leetcode-cn.com/problems/house-robber-iii/
338. 比特位计数 简单
https://leetcode-cn.com/problems/counting-bits/
5. 最长回文子串 中等
https://leetcode-cn.com/problems/longest-palindromic-substring/
10. 正则表达式匹配 困难
https://leetcode-cn.com/problems/regular-expression-matching/
62. 不同路径 中等
https://leetcode-cn.com/problems/unique-paths/
64. 最小路径和 中等
https://leetcode-cn.com/problems/minimum-path-sum/
72. 编辑距离 困难
https://leetcode-cn.com/problems/edit-distance/
221. 最大正方形 中等
https://leetcode-cn.com/problems/maximal-square/
79. 单词搜索 中等
https://leetcode-cn.com/problems/word-search/
94. 二叉树的中序遍历 简单
https://leetcode-cn.com/problems/binary-tree-inorder-traversal/
98. 验证二叉搜索树 中等
https://leetcode-cn.com/problems/validate-binary-search-tree/
101. 对称二叉树 简单
https://leetcode-cn.com/problems/symmetric-tree/
104. 二叉树的最大深度 简单
https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/
124. 二叉树中的最大路径和 困难
https://leetcode-cn.com/problems/binary-tree-maximum-path-sum/
226. 翻转二叉树 简单
https://leetcode-cn.com/problems/invert-binary-tree/
236. 二叉树的最近公共祖先 中等
https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/
297. 二叉树的序列化与反序列化 困难
https://leetcode-cn.com/problems/serialize-and-deserialize-binary-tree/
337. 打家劫舍 III 中等
https://leetcode-cn.com/problems/house-robber-iii/
437. 路径总和 III 中等
https://leetcode-cn.com/problems/path-sum-iii/
538. 把二叉搜索树转换为累加树 中等
https://leetcode-cn.com/problems/convert-bst-to-greater-tree/
543. 二叉树的直径 中等
https://leetcode-cn.com/problems/diameter-of-binary-tree/
617. 合并二叉树 简单
https://leetcode-cn.com/problems/merge-two-binary-trees/
17. 电话号码的字母组合 中等
https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/
102. 二叉树的层序遍历 中等
https://leetcode-cn.com/problems/binary-tree-level-order-traversal/
200. 岛屿数量 中等
https://leetcode-cn.com/problems/number-of-islands/
17. 电话号码的字母组合 中等
https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/
22. 括号生成 中等
https://leetcode-cn.com/problems/generate-parentheses/
39. 组合总和 中等
https://leetcode-cn.com/problems/combination-sum/
46. 全排列 中等
https://leetcode-cn.com/problems/permutations/
78. 子集 中等
https://leetcode-cn.com/problems/subsets/
79. 单词搜索 中等
https://leetcode-cn.com/problems/word-search/
301. 删除无效的括号 困难
https://leetcode-cn.com/problems/remove-invalid-parentheses/
394. 字符串解码 中等
https://leetcode-cn.com/problems/decode-string/
19. 删除链表的倒数第 N 个结点 中等
https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/
141. 环形链表 简单
https://leetcode-cn.com/problems/linked-list-cycle/
142. 环形链表 II 中等 弗罗里德判圈法
https://leetcode-cn.com/problems/linked-list-cycle-ii/
287. 寻找重复数 中等 弗罗里德判圈法
https://leetcode-cn.com/problems/find-the-plicate-number/
20. 有效的括号 简单
https://leetcode-cn.com/problems/valid-parentheses/
42. 接雨水 困难
https://leetcode-cn.com/problems/trapping-rain-water/
84. 柱状图中最大的矩形 困难
https://leetcode-cn.com/problems/largest-rectangle-in-histogram/
85. 最大矩形 困难
https://leetcode-cn.com/problems/maximal-rectangle/
155. 最小栈 简单
https://leetcode-cn.com/problems/min-stack/
739. 每日温度 中等
https://leetcode-cn.com/problems/daily-temperatures/
33. 搜索旋转排序数组 中等
https://leetcode-cn.com/problems/search-in-rotated-sorted-array/
48. 旋转图像 中等
https://leetcode-cn.com/problems/rotate-image/
96. 不同的二叉搜索树 中等
https://leetcode-cn.com/problems/unique-binary-search-trees/
169. 多数元素 简单
https://leetcode-cn.com/problems/majority-element/
238. 除自身以外数组的乘积 中等
https://leetcode-cn.com/problems/proct-of-array-except-self/
240. 搜索二维矩阵 II 中等
https://leetcode-cn.com/problems/search-a-2d-matrix-ii/
406. 根据身高重建队列 中等
https://leetcode-cn.com/problems/queue-reconstruction-by-height/
34. 在排序数组中查找元素的第一个和最后一个位置 中等
https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/
136. 只出现一次的数字 简单
https://leetcode-cn.com/problems/single-number/
338. 比特位计数 简单
https://leetcode-cn.com/problems/counting-bits/
461. 汉明距离 简单
https://leetcode-cn.com/problems/hamming-distance/
146. LRU 缓存机制 中等
https://leetcode-cn.com/problems/lru-cache/
160. 相交链表 简单
https://leetcode-cn.com/problems/intersection-of-two-linked-lists/
206. 反转链表 简单
https://leetcode-cn.com/problems/reverse-linked-list/
234. 回文链表 简单
https://leetcode-cn.com/problems/palindrome-linked-list/
207. 课程表 中等
https://leetcode-cn.com/problems/course-schele/
208. 实现 Trie (前缀树) 中等
https://leetcode-cn.com/problems/implement-trie-prefix-tree/
215. 数组中的第K个最大元素 中等
https://leetcode-cn.com/problems/kth-largest-element-in-an-array/
239. 滑动窗口最大值 困难
https://leetcode-cn.com/problems/sliding-window-maximum/
347. 前 K 个高频元素 中等
https://leetcode-cn.com/problems/top-k-frequent-elements/
322. 零钱兑换 中等
https://leetcode-cn.com/problems/coin-change/
416. 分割等和子集 中等
https://leetcode-cn.com/problems/partition-equal-subset-sum/
494. 目标和 中等
https://leetcode-cn.com/problems/target-sum/
312. 戳气球 困难
https://leetcode-cn.com/problems/burst-balloons/
322. 零钱兑换 中等
https://leetcode-cn.com/problems/coin-change/
399. 除法求值 中等
https://leetcode-cn.com/problems/evaluate-division/
560. 和为K的子数组 中等
https://leetcode-cn.com/problems/subarray-sum-equals-k/
621. 任务调度器 中等
https://leetcode-cn.com/problems/task-scheler/
二十三、马拉车(中心扩散+对称性)
647. 回文子串 中等
https://leetcode-cn.com/problems/palindromic-substrings/
⑧ 股票买入卖出规则
一、股票买入卖出规则例举如下:
1、交易时间,除了法定节假日以外,中国股市的交易时间为周一至周五的上午9:30—11:30,下午1:00—3:00,每天4个小时。股票卖出后当天是不能把钱提取出来的,只能等到下一个交易日。在买卖股票时还要注意涨跌幅度的限制,除了科创板20%以外,其余的都是10%的涨跌幅度限制,被标注st的股票每天有5%的涨跌停限制。 股票实行T+1交易,即当天买入次日才能卖出,股票买入卖出时以1手为基本单位,1手等于100股,买入卖出时需要按照整数倍增加。科创板最低买入卖出为2手,超过2手可以以1股为基本单位增加。一只股票在涨停跌停时停止交易,主板涨跌幅限制为10%,科创板为20%,ST股和*ST股为5%,节假日股市休市交易所停止股票交易。?
2、竞价成交,股市的成交排序规则为:价格较高的委托买单优先于价格较低的委托买单,价格较低的委托卖单优先于价格较高的委托卖单。价格相同的委托,按委托时间排序。??
3、交易单位,股票的交易单位为“手”,一手即为100股,委托买入数量必须为100股或者为其整倍数。股票买入时只能按手为单位进行交易,主板最低1手,然后按照1手的整数倍增加,科创板最低2手买入,不过比2手多时可以按1股的数量逐步增加,比如可以购买201股。它和主板的买入规则有一定的出入。股票卖出时也必须按手进行交易,这里当科创板股票卖出高于2手后也可以按一股的数量增加卖出,也就是可以卖出201股。不论是什么板块的股票,当天买进之后不能当天卖出,至少等到下一个交易日卖出。
4、报价单位, 股票的报价单位与交易单位有所区别,股票的报价单位为“股”,即某某股票当前价位为10元每股。??
二、股票卖出基本策略
1、在市场上发现更好的机会时,如果此时资金不足,可以抛出手中股票回收资金买入新股;
2、当股价在阻力位无法继续上涨,此时投资者应当适量减仓或者清仓,如果突破阻力位则视情况卖出获利出局;
3、购入股票后股价到达止盈位时,及时获利出局,避免犹豫或者贪婪造成损失;
4、购入股票后股价跌到止损位时应及时卖出止损,寻找更好的投资机会;
5、购入股票后公司基本面有了变化,并且这种变化对股价产生负面影响,投资者可以果断出局。
⑨ 程序员算法实现-买卖股票的最佳时机系列问题
主要思路:因为只有一股可以交易,所以我们可以枚举 必须以i位置作为卖出时机的情况下,得到的最大收益是多少。如果我们得到每个i位置的最大收益,那么最大收益必是所有位置的最大收益的最大值 。
使用两个变量:
min变量:表示遍历到的位置之前的最小值是什么。
max变量:表示当前收集到必须以i位置卖出的最大收益是多少。
遍历数组一遍,在遍历到i位置的时候,min和max的更新逻辑如下:
遍历完数组,返回max的值就是最终答案。完整代码见:
主要思路:由于可以进行任意次的交易,但是任何时候最多只能持有一股股票,所以我们可以把股票曲线的所有 上升段 都抓取到,累加收益就是最大收益。遍历数组,遍历到的位置减去前一个位置的值,如果是正数,就收集,如果是负数,就把本次收益置为0(就等于没有做这次交易),这样遍历一遍数组,就不会错过所有的收益。
设置一个变量max,初始为0,用于收集最大收益值,来到i位置,max更新逻辑如下:
完整代码如下:
由本题可以简单得出一个结论: 如果数组元素个数为N,则最多执行N/2次交易就可以抓取所有的上升段的值(极端情况下,当前时刻买,下一个时刻卖,保持这样的交易一直到最后,执行的交易次数就是N/2) 。
主要思路:
在第2种情况下,我们定义
其中dp[i][j]表示[0...i]范围内交易j次获得的最大收益是多少。如果可以把dp这个二维表填好,那么返回dp[N-1][k]的值就是题目要的答案。
dp这个二维矩阵中,
第一行的值表示数组[0..0]范围内,交易若干次的最大收益,显然,都是0。
第一列的值表示数组[0...i]范围内,交易0次获得的最大收益,显然,也都是0。
针对任何一个普遍位置dp[i][j]的值,
我们可以枚举i位置是否参与交易,如果i位置不参与交易,那么dp[i][j] = dp[i-1][j],如果i位置参与交易,那么i位置一定是最后一次的卖出时机。
那最后一次买入的时机,可以是如下情况:
最后一次买入的时机在i位置,那么dp[i][j] = dp[i][j-1] - arr[i] + arr[i]
最后一次买入的时机在i-1位置,那么dp[i][j] = dp[i-1][j-1] - arr[i-1] + arr[i]
最后一次买入的时机在i-2位置,那么dp[i][j] = dp[i-2][j-1] - arr[i-2] + arr[i]
...
最后一次买入的时机在0位置,那么dp[i][j] = dp[0][j-1] - arr[0] + arr[i]
完整代码如下:
上述代码中包含一个枚举行为
增加了时间复杂度,我们可以优化这个枚举。
我们可以举一个具体的例子来说明如何优化,
比如,
当我们求dp[5][3]这个值,我们可以枚举5位置是否参与交易,假设5位置不参与交易,那么dp[5][3] = dp[4][3],假设5位置参与交易,那么5位置一定是最后一次的卖出时机。那最后一次买入的时机,可以是如下情况:
最后一次买入的时机在5位置,那么dp[5][3] = dp[5][2] - arr[5] + arr[5]
最后一次买入的时机在4位置,那么dp[5][3] = dp[4][2] - arr[4] + arr[5]
最后一次买入的时机在3位置,那么dp[5][3] = dp[3][2] - arr[3] + arr[5]
最后一次买入的时机在2位置,那么dp[5][3] = dp[2][2] - arr[2] + arr[5]
最后一次买入的时机在1位置,那么dp[5][3] = dp[1][2] - arr[1] + arr[5]
最后一次买入的时机在0位置,那么dp[5][3] = dp[0][2] - arr[0] + arr[5]
我们求dp[4][3]这个值,我们可以枚举4位置是否参与交易,假设4位置不参与交易,那么dp[4][3] = dp[3][3],假设4位置参与交易,那么4位置一定是最后一次的卖出时机。那最后一次买入的时机,可以是如下情况:
最后一次买入的时机在4位置,那么dp[4][3] = dp[4][2] - arr[4] + arr[4]
最后一次买入的时机在3位置,那么dp[4][3] = dp[3][2] - arr[3] + arr[4]
最后一次买入的时机在2位置,那么dp[4][3] = dp[2][2] - arr[2] + arr[4]
最后一次买入的时机在1位置,那么dp[4][3] = dp[1][2] - arr[1] + arr[4]
最后一次买入的时机在0位置,那么dp[4][3] = dp[0][2] - arr[0] + arr[4]
比较dp[5][3]和dp[4][3]的依赖关系,可以得到如下结论:
假设在求dp[4][3]的过程中,以下递推式的最大值我们可以得到
dp[4][2] - arr[4]
dp[3][2] - arr[3]
dp[2][2] - arr[2]
dp[1][2] - arr[1]
dp[0][2] - arr[0]
我们把以上式子的最大值定义为best,那么
dp[5][3] = Math.max(dp[4][3],Math.max(dp[5][2] - arr[5] + arr[5], best + arr[5]))
所以dp[5][3]可以由dp[4][3]加速得到,
同理,
dp[4][3]可以通过dp[3][3]加速得到,
dp[3][3]可以通过dp[2][3]加速得到,
dp[2][3]可以通过dp[1][3]加速得到,
dp[1][3]可以很简单得出,dp[1][3]有如下几种可能性:
可能性1,1位置完全不参与,则
可能性2,1位置作为最后一次的卖出时机,买入时机是1位置
可能性3,1位置作为最后一次的卖出时机,买入时机是0位置
此时,best的值为
然后通过dp[1][3]加速dp[2][3],通过dp[2][3]加速dp[3][3]......,所以二维dp的填写方式是按列填,
先填dp[1][0],dp[1][2]一直到dp[1][k],填好第一列;
然后填dp[2][0],dp[2][1]一直到dp[2][k],填好第二列;
...
依次填好每一列,直到填完第N-1列。
枚举行为被优化,优化枚举后的完整代码如下:
主要思路:上一个问题中,令k=2就是本题的答案。
主要思路:因为有了冷冻期,所以每个位置的状态有如下三种:
定义三个数组,分别表示i位置这三种情况下的最大值是多少
显然有如下结论:
针对一个普遍位置i
最大收益就是如上三种方式的最大值。完整代码见:
由于三个数组有递推关系,所以可以用三个变量替换三个数组,做空间压缩,优化后的代码如下:
主要思路:由于没有冷冻期,所以在i位置的时候,状态只有两种
针对0位置
针对普遍位置i
完整代码如下:
同样的,两个数组都有递推关系,可以做空间压缩,简化后的代码如下:
原文链接:买卖股票的最佳时机系列问题 - Grey Zeng - 博客园
⑩ 买卖股票计算公式
安卓系统设置锁屏密码的方法较多,可以有数字密码、图案密码和PIN码等等。但万一忘记这些密码,解锁的方法无外乎两种。 一、 Google账号解锁 前提:被锁机器之前设置并登录了google账号,账号密码已知,且手机可以联网。 步骤: 1、随意5次输入密码,系统提示5次输入错误,30秒后重试。 2、此时解锁界面下方会提示“忘记密码”,点击输入之前设置过的Google账号和密码即可立即解锁。 ? 二、清空数据解锁 前提:无任何限制条件,但手机中最好没有重要的用户数据资料。 1、关机状态下同时按住开机键和音量加键,进入recovery。 2、依次选择简体中文-清空数据-清空用户数据,重启进入系统,此操作只删除用户数据,应用软件得以保留。