LeetCode Python题解(一)----双指针法
根据: github优秀创作者.
算法思想
1.双指针法
2.排序
3.贪心思想
4.二分查找
5.分冶
6.搜索
7.动态规划
8.数学
1. 双指针法:
双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。
1.1 有序数组的 Two Sum
题目描述:在有序数组中找出两个数,使它们的和为 target。
输入: numbers={2, 7, 11, 15}, target=9
输出: [1,2]
思路:使用双指针,一个指针指向值较小的元素,一个指针指向值较大的元素。指向较小元素的指针从头向尾遍历,指向较大元素的指针从尾向头遍历。
- 如果两个指针指向元素的和 sum == target,那么得到要求的结果;
- 如果 sum > target,移动较大的元素,使 sum 变小一些;
- 如果 sum < target,移动较小的元素,使 sum 变大一些。
class Solution:def twoSum(self,nums,target):i,j = 0,len(nums)-1while i<j:sum = nums[i]+nums[j]if sum < target:i += 1elif sum > target:j -= 1else:return [i+1,j+1]return None
1.2 两数平方和
题目描述:判断一个数是否为两个数的平方和。
输入: 5
输出: True
解释: 1 * 1 + 2 * 2 = 5
思路:使用双指针,因为为两个数的平方和,一个指针指向较小的元素,一个指针指向值较大的元素。指向较小元素的指针从头向尾遍历,指向较大元素的指针从尾向头遍历。
- 较小元素自定义为0,较大元素自定义为目标值的开平方
- 如果两个指针指向元素的和 sum == target,那么得到要求的结果;
- 如果 sum > target,减小较大元素的值,使 sum 变小一些;
- 如果 sum < target,增大较小元素的值,使 sum 变大一些。
class Solution:def judgeSquareSum(self,target):i,j = 0,int(target**0.5)while i <= j:sum = i*i + j*jif sum < target:i += 1elif sum > target:j -= 1else:return Truereturn False
1.3 反转字符串中的元音字符
题目描述:编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
输入: "leetcode"
输出: "leotcede"
思路:使用双指针指向待反转的两个元音字符,一个指针从头向尾遍历,一个指针从尾到头遍历。
class Solution:def reverseVowels(self, s: str) -> str:vowel = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']i, j = 0, len(s) - 1s = list(s)while i < j:if s[i] in vowel and s[j] in vowel:s[i], s[j] = s[j], s[i]i, j = i + 1, j - 1elif s[i] not in vowel:i = i + 1elif s[j] not in vowel:j = j - 1return ''.join(s)
1.4 回文字符串
题目描述:可以删除一个字符,判断是否能构成回文字符串。
输入: "aba"
输出: True
思路:使用双指针指向字符串,一个指针从头向尾遍历,一个指针从尾到头遍历。
- 如果双指针指着的两边的值不同的时候,选择跳过左边的或者右边的一个值,再去验证一遍
class Solution:def validPalindrome(self,strs):i,j = 0,len(strs)-1while i < j:if strs[i] != strs[j]:return self.isPalindrome(strs,i,j-1) | self.isPalindrome(strs,i+1,j)i += 1j -= 1return Truedef isPalindrome(self,strs,left,right):while left < right:if strs[left] != strs[right]:return Falseleft += 1right -= 1return True
本文内容根据github优秀创作者,仅仅是自己学习。
相关文章:

解密淘宝网的开源架构(转)
淘宝网,是一个在线商品数量突破一亿,日均成交额超过两亿元人民币,注册用户接近八千万的大型电子商务网站,是亚洲最大的购物网站。那么对于淘宝网这样大规模的一个网站,我猜想大家一定会非常关心整个网站都采用了什么样…

不上全站https的网站你们就等着被恶心死吧
2019独角兽企业重金招聘Python工程师标准>>> 测试脚本 #!/bin/sh wget \ --user-agent"Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19" \-r \-P a…
《C#精彩实例教程》小组阅读01 – MSDN是什么?
学习编程,特别是在Windows环境下的编程,当我们遇到问题时,最先想到的权威解答机构就是MSDN了。 什么是MSDN呢? MSDN – Microsoft Developer Network 是微软一个期刊产品,专门介绍各种编程技巧。同时它也是独立于Mic…

LeetCode Python题解(二)----排序
根据: githhub优秀创作者. 算法思想 1.双指针法 2.排序 3.贪心思想 4.二分查找 5.分冶 6.搜索 7.动态规划 8.数学 快速排序 用于求解 Kth Element 问题,也就是第 K 个元素的问题。 可以使用快速排序的 partition() 进行实现。需要先打乱数组ÿ…

人生快乐之道(组图)
举报 转载于:https://www.cnblogs.com/qqnnhhbb/articles/1373323.html

Codeforces Round #270
Codeforces Round #270 题目链接 A:我是筛了下素数。事实上偶数仅仅要输出4和x - 4,奇数输出9和x - 9就可以 B:贪心的策略,把时间排序后。取每k个的位置 C:贪心。每次遇到一个人尽量让他用字典序小的,假设不…
Matlab与数据结构 -- 如何获取完整文件名
本图文介绍了Matlab中获取完整文件名的函数fullfile()。

用Git上传删除本地项目到gitlab---图文解析
Git简介 Git是目前世界上最先进的分布式版本控制系统 故事起源:如果你用Microsoft Word写过长篇大论,那你一定有这样的经历: 想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……

正常的人|正确的作息时间
正确的作息时间 标签:健康/保健 分类:美容护肤晚上9点——11点为免疫系统(淋巴)排毒时间。此时间应安静或听音乐 晚间11点——凌晨1点,肝的排毒时间,需在熟睡中进行凌晨1点——3点,胆的排毒时间…
基于Matlab的BP神经网络在语音特征信号识别中的应用
本微信图文详细介绍了BP神经网络在语音特征信号中的应用,并给出了Matlab源码。

DSSM(DEEP STRUCTURED SEMANTIC MODELS)
Huang, Po-Sen, et al. "Learning deep structured semantic models for web search using clickthrough data." Proceedings of the 22nd ACM international conference on Conference on information & knowledge management. ACM, 2013. 该网络把两个不同的输…

TCP和UDP传输特点
1.1TCP传输特点: 端到端通信:客户应用程序在一端,服务器在另一端建立可靠连接:建立连接时会测试网络的连通性可靠交付:建立连接后会发送数据是可靠的,除非因为故障而不能可靠交付,发送方会得到…

css3之 渐变
CSS3 渐变(gradients)可以让你在两个或多个指定的颜色之间显示平稳的过渡。 以前,你必须使用图像来实现这些效果。但是,通过使用 CSS3 渐变(gradients),你可以减少下载的事件和宽带的使用。此外…

CRM:把 isv.config.xml 按钮事件移动到 entity.onload()
大家都知道在ISV.CONFIG里可以添加按钮,然后添加按钮事件,比如下面: <Entities><Entity name"account"><ToolBar ValidForCreate"0"ValidForUpdate"1"><Button Icon"/_imgs/ico_18_…
Matlab与线性代数 -- 均匀分布的随机矩阵
本微信图文详细介绍了Matlab中均匀分布的随机矩阵函数rand、rands、randperm。

pytest实战--参数化parametrize+前置fixture
文章目录参数化 parametrize适用场景一个典型的例子前置fixture参数化适用场景一个典型的例子示例2个人疑问?pytest既可以用来做单元测试,也可以用来做自动化接口测试,pytest可以结合allure生成漂亮的测试报告,经过一段时间的学习…
Matlab与机器学习 -- BP网络神经元上的转移函数
本图文详细介绍了BP神经网络常用的转移函数及其导数,单极性Sigmoid函数,双极性Sigmoid函数,线性函数。

在baidu上找到自己
在baidu上搜了我经常用的用户名,找到了这里,一看都满屋子都是灰尘,我打扫了一下。也清理了自己。发现那时的自己好冲动、好小孩。 其实现在也一样。我不想去否认自己的过去,但也不想公开这段过去。因为它在这个废弃的屋子里很安静…

selenium--iframe之模拟qq空间登录
文章目录前言分析切换iframe前言 我在模拟登录qq的时候,发现无论如何都定位不了qq的“账号密码登录”,怎么都进不去qq的登录页面,如下图所示 分析 打开 https://qzone.qq.com/然后点击二维码登录这块,背景出现了灰色ÿ…

Java读取Properties配置文件
目录1.Properties类与Properties配置文件2.Properties中的主要方法3.示例1.Properties类与Properties配置文件Properties类继承自Hashtable类并且实现了Map接口,使用键值对的形式来保存属性集。不过Properties的键和值都是字符串类型。2.Properties中的主要方法(1)l…
《C#精彩实例教程》小组阅读02 – Visual Studio简介与安装
本图文详细介绍了什么是Visual Studio,以及Visual Studio的安装过程。 上一次我们介绍了Visual Studio 2015的下载,以及MSDN。 这一次,我们说说什么是Visual Studio以及如何安装。 Visual Studio(简称VS)是微软公司…

从.NET寻找出路
自从成了金融危机的牺牲品之后,一直在寻找出路. 从.NET开发人员 到 待业青年, 再到现在的 技术支持,有些茫然,不知道未来在哪里!! 工作一年半,发现给别人打工没啥发展,…

关于高速光耦6n137的使用总结_光耦使用中的那点事1
目前通用的隔离器件有光耦、变压器隔离、电容耦合等三大主流方式。其中光耦和变压器隔离使用的较多,有很多地方都可以见到。本次推送主要介绍光电耦合器的几个使用注意事项,以下截图数据来源于TLP785的数据手册。1、延时时间大家可以看到在5V供电情况下&…

javascript回调函数笔记
来源于:https://github.com/useaname/blog-study 在Javascript中,函数是第一类对象。意味函数可以像对象一样按照第一类被管理使用。回调函数是从一个叫函数式编程的编程范式中衍生出来的概念。简单来说,函数式编程就是使用函数作为变量。函数…

工厂方法模式与抽象工厂模式的区别
工厂方法模式: 一个抽象产品类,可以派生出多个具体产品类。 一个抽象工厂类,可以派生出多个具体工厂类。 每个具体工厂类只能创建一个具体产品类的实例。 抽象工厂模式: 多个抽象产品类,每个抽象产品类可以派生出多个具…
LSGO代码小组第18周复盘日志
LSGO软件技术团队第18周代码小组学习复盘日志。

唐山松下焊接机器人编程招聘_机器人四小家族-松下Panasonic专注焊接
在日本松下的网站,机器人是和焊接系统方案是在一起的。松下机器人的历史(来源于松下公司网站)1980年松下AW系列弧焊机器人投放上市,机器人系统之间采用的是单向模拟通讯方式模拟通讯的机器人1983年示教的容易化1988年减少干涉的设…
基于Matlab的BP神经网络在非线性函数拟合中的应用
本图文详细介绍了如何利用Matlab神经网络工具箱实现BP神经网络对非线性函数的拟合。

aligned_storage简单学习
#include <iostream> #include <type_traits> #include <string>/* template< std::size_t Len, std::size_t Align default-alignment >struct::type aligned_storage; 相当于一个内建的POD类型他的大小是Size他的对齐方式是Align */ template<c…

有关高级关系引擎中存在错误
SQL server2005 Analysis Services项目中出现以下错误 高级关系引擎中存在错误。 无法与 DataSourceID 为“Adventure Works DW”、名称为“Adventure Works DW”的数据源建立连接。 但是数据源测试连接是好使的,搜到已解决办法,数据源对里双击…