自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 剑指Offer选题列表

题目来源于何海涛的《剑指Offer》。版权归其所有。题目略有删减,筛选出个人觉得比较适合面试的题目。 3. 二维数组中的查找 【Medium】 https://blog.csdn.net/leel0330/article/details/79786198 6. 根据树的遍历重建二叉树【Medium】 https://blog.csdn.net/leel0330/art...

2018-04-21 19:18:40 320

原创 Java内存模型

衡量一个服务性能的高低好坏,每秒事务处理数(TPS)是最重要的指标之一,它代表着一秒内服务端平均能响应的请求总数,而TPS值与程序的并发能力又有非常密切的关系。 Java虚拟机规范中试图定义一种Java内存模型(JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果。 Java内存规范规定了所有的变量都存储在主内存中,每条线程都还有自己的工作内存...

2018-04-28 10:15:27 174

原创 Java垃圾回收

为什么要了解GC和内存分配? 因为当排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们需要对这些技术实施必要的监控和调节。 Java堆和方法区不一样,一个接口中的多个实现类需要的内存不一样,一个方法中的多个分支需要的内存也不一样,我们只有在程序处于运行期间才能知道会创建哪些对象,这部分内存的分配和回收是动态的,垃圾收集器所关注的就是这部分内存。 Java语...

2018-04-28 10:15:16 113

原创 二分查找

二分查找的前提是数组有序,具体实现为: def binary_search(data, target): left, right = 0, len(data) - 1 while left <= right: mid = left + (right - left + 1) / 2 if data[mid] == target: ...

2018-04-24 09:52:06 92

原创 排列问题题解

1. 无重复元素的排列 def permutation_without_repeated_element(data): res, item = [], [] used = [False for _ in xrange(len(data))] helper(data, res, item, used) return res def helper(data, ...

2018-04-23 18:45:25 223

原创 快速排序

平均时间复杂度为O(nlogn),非稳定排序。实现如下: def quick_sort(data): res = [val for val in data] print res quick_sort_imp(res, 0, len(data) - 1) return res def quick_sort_imp(data, start, end): ...

2018-04-23 13:20:01 138

原创 数值的整数次方

题目 实现函数power(base, exponent),求base的exponent次方,不能使用库函数。 Python题解 def power(base, exponent): if exponent == 0: return 1 if exponent == 1: return base res = power(base,...

2018-04-23 09:47:25 118

原创 连续子数组的最大和

题目 输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。 Python题解 def find_greatest_subarray(arr): if arr is None or len(arr) == 0: return 0 sum = arr[0] max_n...

2018-04-23 09:46:57 111

原创 数字在排序数组中出现的次数

题目 统计一个数字在排序数组中出现的次数,例如输入排序数组[1, 2, 3, 3, 3, 3, 4, 5],由于3出现了4次,所以输出4。 Python题解 def get_first_k(data, k, start, end): if start > end: return -1 middle_idx = (start + end) / 2 ...

2018-04-22 20:23:11 107

原创 旋转数组的最小数字

题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转,输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。如【3, 4, 5,1,2】为【1, 2, 3, 4, 5】的一个旋转,求数组的最小值。 Python题解 def min_num_in_rotated_arr(arr): index_1 = 0 index_2 = len(arr) - ...

2018-04-22 20:22:17 151

原创 反转链表

题目 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。 Python题解 def reverse_list(head): q = None p = head reverse_head = None while p: r = p.next if r is None: reverse_hea...

2018-04-22 17:34:51 124

原创 数组中出现次数超过一半的数字

题目 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如[1, 2, 3, 2, 2, 2, 5, 4, 2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。 Python题解 def partition(data, start, end): left, right = start, end pivot = data[left] ...

2018-04-22 17:33:14 109

原创 数组中只出现一次的数字

题目 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请在时间复杂度为O(n),空间复杂度为O(1)的情况下,找出这两个数字。 Python题解 def find_first_bit_1(num): index_1 = 0 while num & 1 == 0: num = num >> 1 index_1 ...

2018-04-22 16:41:37 134

原创 和为s的两个数字&和为s 的连续正数序列

题目1 输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对,输出所有对。 Python题解 def find_num_with_sum(data, sum): hash_set = set() res = [] for idx, num in enumerate(data): another_num = ...

2018-04-22 16:41:00 136

原创 两个链表的第一个公共节点

题目 输入两个链表,找出它们的第一个公共节点。 Python题解 def get_list_len(head): list_len = 0 while head is not None: list_len += 1 head = head.next return list_len def find_first_common_...

2018-04-22 15:18:39 172

原创 二进制中1的个数

题目 实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如9的二进制是1001,有2位是1。因此输入9,该函数输出2。 Python题解 def num_of_1_in_binary(n): cnt = 0 while n: cnt += 1 n = n & (n - 1) return cnt...

2018-04-22 15:17:21 293

原创 二维数组中的查找

题目 在一个二维数组中,每一行都是从左到右递增,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样一个二维数组和一个整数,判断该数组是否包含该整数。 Python题解 #encoding=utf-8 def find_num_in_matrix(matrix, rows, cols, target): found = False if matrix is...

2018-04-22 14:20:56 167

原创 根据树的遍历重建二叉树

题目 根据前序遍历和中序遍历重建二叉树 根据中序遍历和后序遍历重建二叉树 Python题解 1. def build_tree(preorder, inorder): map = {} for idx, item in enumerate(inorder): map[item] = idx return helper(preorder, ...

2018-04-21 19:17:16 232

原创 MySQLdb使用指南

0. 引入MySQLdb import MySQLdb 1. 创建mysql连接 db = MySQLdb.Connect(host='localhost', port=3306, user='root', passwd='root', db = 'test') 参数根据你的配置来,这里以loc...

2018-04-16 14:44:25 448

原创 Mysql事务的那些事儿

事务会把数据库从一种一致状态转换为另一种一致状态,在数据库提交工作时,可以确保其要么所有修改都已经保存了,要么所有修改都不保存。 事务的四个性质–ACID(原子性、一致性、隔离性、持久性)。 原子性 整个数据库事务是不可分割的工作单位。 一致性 事务将数据库从一种状态转变为下一种一致的状态。 隔离性 一个事务的影响在该事务提交前对其他事务都不可见。 持久性 ...

2018-04-11 12:55:36 132

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除