sor

MySQL到底能有多少个字段

人盡茶涼 提交于 2020-04-01 01:23:31
今天技术讨论群里 “一切随遇而安”同学看书时出现一个疑问,一个MySQL的表中到底可以有多少个字段?带着这个疑问,我们展开了探讨,也接着讨论了一个单字段长度的问题。 1. 官方文档说明 官方文档的内容如下,主要意思是字段个数限制达不到理想的4096个,且和字段类型有关,innodb引擎的字段上限是1017,。 2. 测试表字段数限制 2.1 测试innodb引擎表 因官方文档介绍了innodb表字段限制是1017,因此可以写程序进行模拟。思路如下: a) 创建一张1个 char(1) 类型的innodb表 b) 循环往该表新增字段 直至报错 我使用的是python 脚本进行测试,脚本如下: #!/usr/bin/python # coding=utf-8 import pymysql as mdb import os sor_conn = mdb.connect(host='127.0.0.1',port=3306,user='root',passwd='123456') sor_cur = sor_conn.cursor() v_sql_d = "drop table if exists test.test_c ;" # 为了程序重复执行,添加判断 sor_cur.execute(v_sql_d) sor_conn.commit() v_sql_c = "create table

LeetCode 26. Remove Duplicates from Sorted Array

走远了吗. 提交于 2020-01-25 16:56:37
问题链接 LeetCode 26. Remove Duplicates from Sorted Array 题目解析 给定有序数组,删除其中重复元素,返回新数组长度。 解题思路 由于不是很懂题目的意思,题目要求不要分配额外的数组空间,其实是想说保证空间复杂度为 \(O(1)\) 。 简单题。了解一下, std::unique 。unique函数要求有序数组,需要注意的是unique函数并不是真正地把元素删除,而是将重复的元素移动到最后了,该函数返回最后一个非重复元素的下一位置。所以,使用unique函数后,再用erase函数删除元素。 参考代码 class Solution { public: int removeDuplicates(vector<int>& nums) { nums.erase(unique(nums.begin(), nums.end()), nums.end()); return nums.size(); } }; 快慢指针 使用快慢指针(cur & pre)来记录遍历的坐标,初始两个指针都指向第一个数字,如果两个指针指的数字相同,则快指针+1;如果不同,则两个指针都+1。当快指针到达数组尾部,慢指针当前的坐标加1就是数组中不同数字的个数。参考代码如下: class Solution { public: int removeDuplicates(vector

Leetcode P80 Remove Duplicates from Sorted Array II @python Lang (LL)

时光总嘲笑我的痴心妄想 提交于 2020-01-25 09:45:23
Link: https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/ Content: Method: two pointers (slow and fast pointers) Algorithm: same with P26 单独讨论长度为0,1,2的情况 slow pointer从i = 1开始,fast pointer j = 2 to len(nums) if nums[j] != nums[i-1] 隔两个数比较,移动slow pointer i,将fast pointer 赋值 因为 pointers 是index,return i + 1 Code: class Solution ( object ) : def removeDuplicates ( self , nums ) : """ :type nums: List[int] :rtype: int """ if len ( nums ) < 3 : return len ( nums ) else : i = 1 #slow pointer for j in range ( 2 , len ( nums ) ) : #fast pointer if nums [ j ] != nums [ i - 1 ] : i += 1

[LeetCode 题解] Search in Rotated Sorted Array

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-21 13:48:23
前言 【LeetCode 题解】系列传送门: http://www.cnblogs.com/double-win/category/573499.html 题目描述 Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2 ). You are given a target value to search. If found in the array return its index, otherwise return -1. You may assume no duplicate exists in the array. 题意 假设有一个有序的循环数组, 其起始位置未知。 如 序列 0 1 2 4 5 6 7 可能的数组形式为 4 5 6 7 0 1 2 给定一个目标数据,查找该数据是否在给定的数组中出现。 如果在数组中找到该目标数据,则返回该目标数据所在的数组下标, 否则返回-1. Tips: 假设给定的数组中没有重复的元素 思路 根据题意提取关键信息: 在一个 sorted array 中查找给定元素 首先能够想到的是binary search。

LeetCode:26. Remove Duplicates from Sorted Array删除排序数组中的重复项(C语言)

喜欢而已 提交于 2020-01-13 09:00:45
题目描述: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。 示例 2: 给定 nums = [0,0,1,1,1,2,2,3,3,4], 函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。 你不需要考虑数组中超出新长度后面的元素。 说明: 为什么返回数值是整数,但输出的答案是数组呢? 请注意,输入数组是以“引用”方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。 你可以想象内部操作如下: // nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝 int len = removeDuplicates(nums); // 在函数里修改输入数组对于调用者是可见的。 // 根据你的函数返回的长度, 它会打印出数组中该长度范围内的所有元素。 for (int i = 0; i < len; i++) { print(nums[i]); } 来源:力扣(LeetCode) 链接:https:/

linux下编码转换

做~自己de王妃 提交于 2020-01-12 16:44:17
1.什么是编码? 关于编码的定义,我们可以查看百度全科 http://baike.baidu.com/view/237708.htm 还可以参考:http://www.cnblogs.com/cocowool/archive/2009/04/25/1443529.html 2.linux下经常遇到的编码问题 如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文 件格式是 GBK(gb2312) ,而Linux一般都是 UTF-8 。 3.查看编码的方法 方法一:file filename 方法二:在Vim中可以直接查看文件编码    :set fileencoding 即可显示文件编码格式。 如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在   ~/.vimrc 文件中添加以下内容:   set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936   这样,就可以让vim 自动识别文件编码 (可以自动识别UTF-8或者GBK编码的文件),其实就是依照 fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用 latin-1 ( ASCII )编码打开。 4.文件编码转换 多平台方法: iconv

【LeetCode每天一题】Merge Two Sorted Lists(合并两个排序链表)

我的未来我决定 提交于 2020-01-02 01:19:40
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists. Example: Input: 1->2->4, 1->3->4 Output: 1->1->2->3->4->4 解决思路:最简单的办法是,直接将所有元素图取出来放入内存中,然后进行排序,将排序好的结果重新构造链表然后返回。但是这样做时间复杂度较高,O( (m+n)log(m+n) )(m, n分别为l1 和l2 的长度), 空间复杂度为O(m+n)。      另一种办法是,依此进行比较大小,然后将小的节点插入申请链表节点尾部,循环遍历,直到其中一个链表便遍历完毕。时间复杂度为O(m+n), 空间复杂度为O(m+n)。     步骤图如下:       1 class Solution(object): 2 def mergeTwoLists(self, l1, l2): 3 """ 4 :type l1: ListNode 5 :type l2: ListNode 6 :rtype: ListNode 7 """ 8 if not l1 or not l2: # 其中一个空节点,直接返回非空的节点

spark shuffle详解(hashShuffle和sortShuffle)

依然范特西╮ 提交于 2019-12-16 19:12:00
Shuffle简介 Shuffle描述着数据从map task输出到reduce task输入的这段过程。shuffle是连接Map和Reduce之间的桥梁,Map的输出要用到Reduce中必须经过shuffle这个环节,shuffle的性能高低直接影响了整个程序的性能和吞吐量。因为在分布式情况下,reduce task需要跨节点去拉取其它节点上的map task结果。这一过程将会产生网络资源消耗和内存,磁盘IO的消耗。通常shuffle分为两部分:Map阶段的数据准备和Reduce阶段的数据拷贝处理。一般将在map端的Shuffle称之为Shuffle Write,在Reduce端的Shuffle称之为Shuffle Read. Hadoop MapReduce Shuffle Apache Spark 的 Shuffle 过程与 Apache Hadoop 的 Shuffle 过程有着诸多类似,一些概念可直接套用,例如,Shuffle 过程中,提供数据的一端,被称作 Map 端,Map 端每个生成数据的任务称为 Mapper,对应的,接收数据的一端,被称作 Reduce 端,Reduce 端每个拉取数据的任务称为 Reducer,Shuffle 过程本质上都是将 Map 端获得的数据使用分区器进行划分,并将数据发送给对应的 Reducer 的过程。

如何查看Linux操作系统版本

巧了我就是萌 提交于 2019-12-09 11:18:35
二。查看linux版本: 1) 登录到服务器执行 lsb_release -a ,即可列出所有版本信息,例如: [root@SOR_SYS ~]# lsb_release -a LSB Version: :core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-ia32:printing-4.0-noarch Distributor ID: RedHatEnterpriseAS Description: Red Hat Enterprise Linux AS release 4 (Nahant Update 4) Release: 4 Codename: NahantUpdate4 [root@SOR_SYS ~]# 注:这个命令适用于所有的linux,包括Redhat、SuSE、Debian等发行版。 2) 登录到linux执行cat /etc/issue,例如如下: [root@SOR_SYS ~]# cat /etc/issue Red Hat Enterprise Linux Server release 5.6 (Tikanga) Kernel \r on an

匿名函数lambda和内置函数(sorted, filter, map, reduce)

爱⌒轻易说出口 提交于 2019-12-05 02:48:24
'''匿名函数 lambda 参数:返回值 通常配合内置函数一起使用(sorted, map, filter, reduce) sorted(Iterable, key=None,reverse=False) key是关键,排序规则,sorted会自动把可迭代对象中的每一个传递给key. 并根据key返回的内容进行排序。 map(function, iterable) 可以对可迭代对象中的每一个元素进行映射,分别执行function filter(function, iterable) function:用来筛选的函数,在filter中会自动的把iterable中的元素传递给function. 然后根据function返回的True或者False来判断是否保留此项数据。 reduce(function, iterable, initial) reduce函数会自动把可迭代对象中的每一个拿出来传递给function 第一次传递两个值进去,然后把函数的返回值和下一个元素继续作为参数传递给function 以此类推,最终得到function计算的结果。 ''' lst = [1, 5, 3, 4, 6] lst2 = sorted(lst) print(lst) # [1, 5, 3, 4, 6] print(lst2) # [1, 3, 4, 5, 6] dic = {1:"A", 3