关闭

字符串旋转

标签: leetcode刷题
166人阅读 评论(0) 收藏 举报
分类:
菜鸟今天准备好好学习,开始刷题玩,先从简单的入手,拿起很久没有看的算法。
</pre><pre name="code" class="cpp">刚看了<a target=_blank href="http://weibo.com/julyweibo?s=6cm7D0" target="_blank" alt="研究者July" title="研究者July" style="text-decoration: none; color: rgb(0, 120, 182); border-color: rgb(210, 210, 210); font-size: 14px; line-height: 16px;">July</a>大神的博客,找了LeetCode上面的题练手
</pre><pre name="code" class="cpp">https://leetcode.com/problems/rotate-array/
</pre><pre name="code" class="cpp">反转的思想是,(0,1,2,3....n);
从第倒数第K位反转  那么先交换(0,n-k),再交换(n-k+1,n),最后交换(0,n)
</pre><pre name="code" class="cpp">class Solution
{
public:
	void rotate(vector<int>& nums, int k);
	void Swap(vector<int>& nums, int first, int end);
};
void Solution::Swap(vector<int>& nums, int first, int end)
{
	while (first < end)
	{
		swap(nums[first++], nums[end--]);
	}
}
void Solution::rotate(vector<int>& nums, int k)
{
	if (nums.size() == 0) return;
	k = k%nums.size();
	if (k == 0) return;
	Swap(nums, 0, nums.size() - k - 1);
	Swap(nums, nums.size() - k, nums.size() - 1);
	Swap(nums, 0, nums.size() - 1);

}

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1849次
    • 积分:123
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条