![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
基于常见问题,共享算法之美
leap_ruo
这个作者很懒,什么都没留下…
展开
-
在旋转数组中查找元素
旋转数组查找元素旋转数组数组:[0,1,2,3,4,5,6,7,8,9]则[7,8,9,0,1,2,3,4,5,6]就是其旋转数组之一。解决方法利用数组有序,那么很容易想到二分查找注意点就是如何判断左右边界点代码#!/usr/bin/env python# -*- coding:utf-8 -*-# 旋转数组(无重复)中找到指定值def find_n(l_list, num): right_pos = len(l_list) - 1 left_pos原创 2020-09-09 22:24:30 · 277 阅读 · 0 评论 -
浅谈经典--回溯
回溯法是设计递归过程的一种重要方法,它的求解过程实质上一个先序遍历一颗“状态树”的过程,只是这个课树不是遍历前预先建立的,而是隐含在遍历过程中的。 ————严蔚敏版《数据结构》回溯的过程就是在试探每一种可能,“能进则进,不能则退,退而求其他”。通过有序的试探,把每种可能的情况都遍历一遍。说到回溯思想,那么我们不得不提“八皇后问题”,下面我们以八皇后问题,来展示回溯的思想。在数据存储上,我们可以用一个二维list来表示A[][]皇后的位置,比如A[i][j]表示第i行第j列是皇后位置。但是考虑到条件限制原创 2020-08-09 18:34:08 · 328 阅读 · 2 评论 -
实现atoi - leetcode No.8
实现一个 atoi 函数,使其能将字符串转换成整数重点:识别出数字将数字字符对应到int数字上溢出判断class Solution(object): def myAtoi(self, str): """ :type str: str :rtype: int """ dst_s = 0 re_num1 = re.compile('^\s*-{0,1}\d+') # ' -234'原创 2020-07-25 21:54:53 · 95 阅读 · 0 评论 -
整数翻转-LeetCode No7
问题描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。代码这个属于简单级别的代码,这里需要注意32位int型的范围就可以#!/usr/bin/env python# -*- coding:utf-8 -*- # 重点在于判断是否溢出, 32位的范围 [-2^31, 2^31)class Solution(object): def reverse(self, x): """ :type x: int :rtype:原创 2020-07-25 21:04:11 · 115 阅读 · 0 评论 -
z型输出--LeetCode
给定一个字符串,要求字符穿以“Z”形式输出,并返回最终字符串思路如下:先确定需要多少列,得到Z字矩阵的大小在知道n行的前提下,我们可以知道每两列一共是2n-2个字符。假设原字符串长度为s_len,那么s_len/(2n-2)*(n-1)则为至少需要的列数,然后需要判断剩下的字符还可以可以拼几列。接下来,通过模运算来确定最后还需要几列(0, n-1)。依次按照Z字的走势给矩阵赋值按照走势赋值时,需要注意的是下标越界的问题,所以判断条件一个也不能少。将矩阵按行从左到右依次赋值给新的string原创 2020-06-24 19:18:37 · 507 阅读 · 0 评论 -
最长回文子串之马拉车算法
如题原创 2020-05-03 22:45:59 · 164 阅读 · 0 评论