首页 文章 精选 留言 我的

精选列表

搜索[数据库相关],共10000篇文章
优秀的个人博客,低调大师

(4)剑指Offer之链表相关编程题

一 链表中倒数第k个节点 题目描述: 输入一个链表,输出该链表中倒数第k个结点 问题分析: 一句话概括:两个指针一个指针p1先开始跑,指针p1跑到k-1个节点后,另一个节点p2开始跑,当p1跑到最后时,p2所指的指针就是倒数第k个节点。 思想的简单理解:前提假设:链表的结点个数(长度)为n。规律一:要找到倒数第k个结点,需要向前走多少步呢?比如倒数第一个结点,需要走n步,那倒数第二个结点呢?很明显是向前走了n-1步,所以可以找到规律是找到倒数第k个结点,需要向前走n-k+1步。算法开始: 设两个都指向head的指针p1和p2,当p1走了k-1步的时候,停下来。p2之前一直不动。 p1的下一步是走第k步,这个时候,p2开始一起动了。至于为什么p2这个时候动呢?看下面的分析。 当p1走到链表的尾部时,即p1走了n步。由于我们知道p2是在p1走了k-1步才开始动的,也就是说p1和p2永远差k-1步。所以当p1走了n步时,p2走的应该是在n-(k-1)步。即p2走了n-k+1步,此时巧妙的是p2正好指向的是规律一的倒数第k个结点处。这样是不是很好理解了呢? 考察内容: 链表+代码的鲁棒性 示例代码: /* //链表类 public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ //时间复杂度O(n),一次遍历即可 public class Solution { public ListNode FindKthToTail(ListNode head,int k) { ListNode pre=null,p=null; //两个指针都指向头结点 p=head; pre=head; //记录k值 int a=k; //记录节点的个数 int count=0; //p指针先跑,并且记录节点数,当p指针跑了k-1个节点后,pre指针开始跑, //当p指针跑到最后时,pre所指指针就是倒数第k个节点 while(p!=null){ p=p.next; count++; if(k<1){ pre=pre.next; } k--; } //如果节点个数小于所求的倒数第k个节点,则返回空 if(count<a) return null; return pre; } } 二 反转链表 题目描述: 输入一个链表,反转链表后,输出链表的所有元素。 问题分析: 链表的很常规的一道题,这一道题思路不算难,但自己实现起来真的可能会感觉无从下手,我是参考了别人的代码。思路就是我们根据链表的特点,前一个节点指向下一个节点的特点,把后面的节点移到前面来。就比如下图:我们把1节点和2节点互换位置,然后再将3节点指向2节点,4节点指向3节点,这样以来下面的链表就被反转了。 考察内容: 链表+代码的鲁棒性 示例代码: /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Solution { public ListNode ReverseList(ListNode head) { ListNode next = null; ListNode pre = null; while (head != null) { //保存要反转到头来的那个节点 next = head.next; //要反转的那个节点指向已经反转的上一个节点 head.next = pre; //上一个已经反转到头部的节点 pre = head; //一直向链表尾走 head = next; } return pre; } } 三 合并两个排序的链表 题目描述: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 问题分析: 我们可以这样分析: 假设我们有两个链表 A,B; A的头节点A1的值与B的头结点B1的值比较,假设A1小,则A1为头节点; A2再和B1比较,假设B1小,则,A1指向B1; A2再和B2比较。。。。。。。就这样循环往复就行了,应该还算好理解。 考察内容: 链表+代码的鲁棒性 示例代码: 非递归版本: /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Solution { public ListNode Merge(ListNode list1,ListNode list2) { //list1为空,直接返回list2 if(list1 == null){ return list2; } //list2为空,直接返回list1 if(list2 == null){ return list1; } ListNode mergeHead = null; ListNode current = null; //当list1和list2不为空时 while(list1!=null && list2!=null){ //取较小值作头结点 if(list1.val <= list2.val){ if(mergeHead == null){ mergeHead = current = list1; }else{ current.next = list1; //current节点保存list1节点的值因为下一次还要用 current = list1; } //list1指向下一个节点 list1 = list1.next; }else{ if(mergeHead == null){ mergeHead = current = list2; }else{ current.next = list2; //current节点保存list2节点的值因为下一次还要用 current = list2; } //list2指向下一个节点 list2 = list2.next; } } if(list1 == null){ current.next = list2; }else{ current.next = list1; } return mergeHead; } } 递归版本: public ListNode Merge(ListNode list1,ListNode list2) { if(list1 == null){ return list2; } if(list2 == null){ return list1; } if(list1.val <= list2.val){ list1.next = Merge(list1.next, list2); return list1; }else{ list2.next = Merge(list1, list2.next); return list2; } }

优秀的个人博客,低调大师

使用 Notepad++ 编辑 .java 文件时的相关配置

什么是ANSI编码呢? ANSI是一种字符代码,为使计算机支持更多语言,通常使用 0x00~0x7f 范围的1 个字节来表示 1 个英文字符。超出此范围的使用0x80~0xFFFF来编码,即扩展的ASCII编码。 为使计算机支持更多语言,通常使用 0x80~0xFFFF 范围的 2 个字节来表示 1 个字符。比如:汉字 '中' 在中文操作系统中,使用 [0xD6,0xD0] 这两个字节存储。 不同的国家和地区制定了不同的标准,由此产生了 GB2312、GBK、GB18030、Big5、Shift_JIS 等各自的编码标准。这些使用多个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。 在简体中文Windows操作系统中,ANSI 编码代表 GBK 编码; 在繁体中文Windows操作系统中,ANSI编码代表 Big5 编码; 在日文Windows操作系统中,ANSI 编码代表 Shift_JIS 编码。 不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。 ANSI编码表示英文字符时用一个字节,表示中文用两个或四个字节。 简言之:ANSI编码是跟随电脑操作系统的编码,你电脑操作系统是什么编码,那么它就是什么编码!我的GitHub地址: https://github.com/heizemingjun 我的博客园地址: http://www.cnblogs.com/chenmingjun 我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun Copyright ©2018 黑泽明军 【转载文章务必保留出处和署名,谢谢!】

优秀的个人博客,低调大师

分布式相关(基本概念/名词解释)

1、什么是分布式计算? 所谓分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。分布式网络存储技术是将数据分散的存储于多台独立的机器设备上。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,不但解决了传统集中式存储系统中单存储服务器的瓶颈问题,还提高了系统的可靠性、可用性和扩展性。(百度百科) 2、GOOGLE三大论文中文版:GFS,BigTable,MapReduce。 3、GOOGLE三驾马车与Hadoop对应关系: 1 2 3 GFS——HDFS BigTable——HBase MapReduce——MapReduce MapReduce是一种编程模型(/思想),而不是一个软件或者系统。 3.1、MapReduce的Shuffle阶段。 4、MPI(Message Passing Interface),信息传递接口。 MPI是一个跨语言的通讯协议,用于为并行计算机编写程序。(WIKI) 5、Hadoop[hdu:p](百度百科) 一个分布式系统基础架构,由Apache基金会开发。Hadoop由Apache Software Foundation 公司于2005年秋天作为Lucene的子项目Nutch的一部分正式引入。Hadoop用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力高速运算和存储。 6、Lucene['lusen](百度百科) Lucene是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构。 7、Solr(发音同"solar") Solr是一个开源的企业级搜索平台,基于Apache的Lucene项目。 8、Spark是一个开源的集群计算系统,目标是是让数据分析更快——不管是读还是写。 *** walker *** 本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1308607如需转载请自行联系原作者 RQSLT

优秀的个人博客,低调大师

centOS 7 的文件目录管理及相关的命令

相对和绝对路径 绝对路径:从/目录开始的文件,无论在哪个目录都可以使用绝对路劲访问 相对路径:相对绝对路径来说,从当前目录开始 查看当前目录路径 [root@linux1~] #/etc/sysconfig/network-scripts/ifcfg-ens33#这个就是路径 [root@linux1~] #ls/root/anaconda-ks.cfg /root/anaconda-ks .cfg #这个是就是绝对路径 cd命令 [root @linux1 ~] #pwd#查看当前目录 /root [root @linux1 ~] #cd/etc/#进入到etc目录下 [root @linux1 etc] #pwd /etc #当前目录是etc [root @linux1 etc] #cd#返回上一次目录 [root @linux1 ~] #pwd /root [root @linux1 ~] #cd/etc/ [root @linux1 etc] #pwd /etc [root @linux1 etc] #cd~#进入到当前用户/目录 [root @linux1 ~] #pwd /root [root @linux1 ~] #cd/etc/ [root @linux1 etc] #cd..#进入到上级目录 [root @linux1 /] #pwd / [root @linux1 /] #cd-#返回上次所在目录 /etc [root @linux1 etc] #cd- / [root @linux1 /] # 创建和删除目录mkdir/rmdir #mkdir创建目录 [root@linux1/] #mkdir-pv/tmp/a/1/2/3#可视化创建目录带有两个参数:p&v分别表示级联创建和可视化创建 mkdir :已创建目录 "/tmp/a" mkdir :已创建目录 "/tmp/a/1" mkdir :已创建目录 "/tmp/a/1/2" mkdir :已创建目录 "/tmp/a/1/2/3" [root@linux1/] #mkdir/tmp/a/2#创建/tmp/a/2目录 [root@linux1/] #cd/tmp/a/ [root@linux1a] #pwd /tmp/a #rmdir只能删除非空目录 [root@linux1a] #rmdir/tmp/a/1/2/3#删除/tmp/a/1/2/3目录 [root@linux12] #cd/tmp/a/1/2/3 - bash : cd : /tmp/a/1/2/3 :没有那个文件或目录 [root@linux12] #touch/tmp/a/1/2/1.txt#创建1.txt文件 [root@linux12] #rmdir/tmp/a/1 rmdir :删除 "/tmp/a/1" 失败:目录非空 rm命令 #rmremove删除文件或者非空目录 [root@linux1~] #ls/tmp/a/1/2 1.txt [root@linux1~] #rm-f/tmp/a/1/2/*#删除1.txt文件*表示通配符,即删除目录下的文件 [root@linux1~] #ls/tmp/a/1/2 [root@linux1~] #rm-rfv/tmp/a/1#强制删除目录参数:r、f、v各表示删除目录强制删除文件,无需提示可视化删除 已删除目录: "/tmp/a/1/2" 已删除目录: "/tmp/a/1"

优秀的个人博客,低调大师

Android百度地图相关内容汇总

Android百度地图知识讲解 1、 百度地图开发环境搭建 http://www.apkbus.com/android-116050-1-1.html 2、 Android百度地图系列教程 http://www.apkbus.com/android-109187-1-1.html 3、 Android百度地图使用 http://www.apkbus.com/android-85726-1-1.html 4、 百度地图总结 http://www.apkbus.com/android-111734-1-1.html 5、 百度地图LBS ItemizedOverlay http://www.apkbus.com/android-89390-1-1.html 6、 百度地图V2.0即时定位和POI显示 http://www.apkbus.com/android-96594-1-1.html 7、 百度地图开发之覆盖物(overay) http://www.apkbus.com/android-122817-1-1.html 8、 百度地图SDK开发指南 http://www.apkbus.com/android-111147-1-1.html 9、 百度地图 LBS 教程前言 http://www.apkbus.com/android-70561-1-1.html 10、 百度地图API之根据经纬度查询地址信息(Android) http://www.apkbus.com/android-55552-1-1.html Android百度地图源码分享 1、 百度地图Demo http://www.apkbus.com/android-117885-1-1.html 2、 百度地图的开发 http://www.apkbus.com/android-93830-1-1.html 3、 百度地图地位 http://www.apkbus.com/android-103295-1-1.html 4、 百度地图AndroidSDK使用样例 http://www.apkbus.com/android-96356-1-1.html 5、 百度地图附近搜索 http://www.apkbus.com/android-109798-1-1.html 6、 百度地图v1.3.5综合demo http://www.apkbus.com/android-100508-1-1.html 7、 分享百度地图自定义公交路线源码 http://www.apkbus.com/android-81548-1-1.html 8、 百度地图简单实现 http://www.apkbus.com/android-126298-1-1.html Android百度地图实例教程 1、 百度地图终极气泡 http://www.apkbus.com/android-121847-1-1.html 2、 经验王道之百度地图ItemizedOverlay http://www.apkbus.com/android-117780-1-1.html 3、 百度地图结合天气查询 http://www.apkbus.com/android-78227-1-1.html 4、 使用百度地图画轨迹 http://www.apkbus.com/android-19087-1-1.html 5、 大连民族学院地图导航(基于百度地图) http://www.apkbus.com/android-90070-1-1.html 6、 百度地图、公交查询、自动定位 http://www.apkbus.com/android-83228-1-1.html 7、 注册Android地图API密钥 http://www.apkbus.com/android-12725-1-1.html 8、 android对google地图的调用 http://www.apkbus.com/android-91806-1-1.html 9、 android定位和地图开发实例 http://www.apkbus.com/android-41906-1-1.html 10、 修改我的位置的图标 http://www.apkbus.com/android-97259-1-1.html 老罗Android视频之百度地图实战 1、 百度地图搭建开发环境 http://www.apkbus.com/android-93452-1-1.html 2、 百度地图覆盖物的描述 http://www.apkbus.com/android-93453-1-1.html 3、 百度地图多个覆盖物的描述 http://www.apkbus.com/android-93454-1-1.html 4、 如何根据范围和检索词发起范围检索 http://www.apkbus.com/android-93456-1-1.html 5、 标注驾车路线搜索 http://www.apkbus.com/android-93458-1-1.html 6、 标注行走路线搜索 http://www.apkbus.com/android-93459-1-1.html 7、 公交换乘路线搜索 http://www.apkbus.com/android-93460-1-1.html 8、 公交路线详情搜索 http://www.apkbus.com/android-93461-1-1.html 9、 如何在一个地图上显示多条导航路线 http://www.apkbus.com/android-93462-1-1.html 10、 经纬度和地址的转换 http://www.apkbus.com/android-93465-1-1.html 本文转自qianqianlianmeng博客园博客,原文链接:http://www.cnblogs.com/aimeng/p/3214689.html ,如需转载请自行联系原作者

优秀的个人博客,低调大师

从事大数据相关的工作 如何自学打基础?

海量数据分成两块,一是系统建设技术,二,海量数据应用。 先说系统建设,现在主流的技术是HADOOP,主要基于mapreduce的分布式框架。目前可以先学习这个。但是我的观点,在分布式系统出来之前,主要是集中式架构,如DB2,oracle。为什么现在用分布式架构,那是因为现在集中式架构受限于IO性能,出来速度慢,如果又一种硬件技术,可以很快地处理海量数据,性能上能满足需求,那么集中式架构优于分布式架构,因为集中式架构稳定,运维压力小。现在的集中式架构要么性能达不到要求,要么就是过于昂贵。我期待一种技术出现,可以非常快地传输和处理数据,那么集中式架构将再次进入人们眼球。再说海量数据应用。海量数据应用主要是数据挖掘和机器算法。具体有不同的应用场景,如个性化搜索和推荐,社交网络发现,精准营销,精准广告,实时最优路径,人工智能等等。看你想做系统支撑技术还是与业务结合的应用技术。 如果现在学系统建设技术,可以读下如下书籍: 如果学数据挖掘和机器算法,推荐先看数据挖掘导论,统计分析原理,Mahout,R,MATLAB 本文作者:佚名 来源:51CTO

优秀的个人博客,低调大师

如何理解可视智慧物联相关技术及理论

1、什么是可视智慧物联技术,它由哪些技术构成? 宇视多年来始终在平安城市、智慧城市、智能交通、大型智能建筑等领域提供最具竞争力的解决方案,于行业率先推出『可视智慧物联』解决方案,以领先的架构、系统,改变处理数据和使用数据的方式,解决万物互联和人工智能在视频监控领域的瓶颈。产品技术和解决方案实践呈现出可视化、智能化和跨界物联等优势特点,产业维度进一步推动生态合作,促进生态繁荣。 在可视化业务呈现层面,宇视平台以人车管控为核心理念,业务应用最大广度覆盖了车牌识别、车款识别、车辆轨迹、人脸多样采集、人员检索、人员轨迹跟踪、人车布控等多项功能,并以VGIS地图引擎为业务承载体,实时显示视频监控点位、路网信息、车辆/行人轨迹等准确信息。作为可视化业务最佳实践的缉查布控系统和全景地图等业务实战功能首次公开展示:缉查布控系统可对区域内的人员车辆数据统计,以可视化的图表形式展示安全态势。G20峰会前短短1个多月的时间里,累计核查人员66万人,现场抓获在逃人员20多人;全景地图在G20安保中,实现精准的坐标定位,精准标注各类安保设施部署情况,周边卡口预警和视频联动。 在智慧业务层面,宇视在大数据、人工智能和存储技术方面的领先成果积累。宇视大数据平台在车辆管控业务,业界首家实现从百亿数据到千亿数据秒级检索的跨越;人工智能在自学习和智能算法方面也取得重大突破,准确率大大提升,标准场景人脸识别的识别率达到95%~99%,各种人员特征及姿势动作都能有效识别;存储技术对于视频业务高效支撑继续保持业内领先,推出业界首款智能融合存储设备,融合最成熟、稳定的存储硬件和最高效、先进的智能分析算法,将数据处理效率提高2倍以上。 在物联网基础设施层面,平台大联网、新一代智能前端和超感技术实力:以G20峰会期间浙江省公安厅部署的宇视视频监控平台大联网为实证,接入规模堪称全国最大、设备种类最多、业务最丰富,海量数据并发状况下,宇视平台呈现高品质且高可靠;新一代智能前端,业内率先采用低功耗机器视觉平台,在前端可以实现特征提取和前端对比等更强智能应用,并可灵活加载各类增强智能分析算法;此外,融合物联网网关的超感智能摄像机,将结合传感和定位设备。 2、可视智慧物联技术应用于哪些领域,解决哪些问题? 智慧安防按应用领域可大致分为3个领域:综合安防、生产监控,智慧城市。 在综合安防,智能分析将丰富更多的安防事件,而大数据技术在结合了报警门禁等信息后,设备运维等业务的可视化,可实现安防由简单的看,往安全态势的方向进行发展。 生产监控中,传感在未来将得到广泛的应用,结合智能和大数据技术,生产信息将进一步数据化,数据中蕴含的信息将使生产监控变的更聪慧,生产过程将得到改善。 可视智慧物联是智慧城市的基础设施,是智慧城市核心关键技术,使智慧城市的应用从事后简单的人工查看向实时管控、事前预防进行发展,也使单纯的视频查看往视频、传感、地图等多维时空信息综合分析研判进行发展。 3、它存在哪些难点需要攻克,将来会朝着哪方面发展? 首先是智能技术,智能技术首先要实现车、人脸、人车物技术的准确性,然后在此基础上,实现可类更广泛行业智能的准确性,同时,也要实现智能更好场景适应性。 智能推广另一个制约是成本,但将随着新芯片、硬件、架构技术的出现,使智能单路成本将逐步降低,实现智能技术在更多领域的推广。 其次,大数据技术发展,未来有两个趋势:数据会进一步集中,多种传感信息的大量融入。 在技术难点上,如何清洗数据、多维信息如何融合、行业数据PaaS平台——行业如何数据建模,及如何基于更丰富数据实现新价值发掘等技术是关键。 第三,可视化不是指展示,它是一种基于数据的、和用户的一种新的交互方式。二维、3D等多种地图技术如何融合应用,合适的数据展示方式和近自然的人机交互方式。 本文转自d1net(转载)

优秀的个人博客,低调大师

Google 开源 SageTV 光纤电视盒的相关软件

SageTV 最初是一个流媒体公司,拥有 DVR 盒子,家庭影院PC软件,甚至类似 Sling 的移动APP。但是,自从在2011年被谷歌收购后,所有这些技术已经退出市场,并限制在谷歌光纤电视盒中。现在,SageTV的创始人(现在的谷歌员工) Jeffrey Kardatzke说谷歌“已经同意开源SageTV平台。”我们不确定这是否意味着SageTV的谷歌光纤技术将在Android TV设备上出现,或者对开发者来说意味着什么。Kardatzke认为此举“将在不久的将来出现”(几个月之内,不是几年)。“我们期待看到,当它完全开放时,社区能为SageTV所做的事情。”文章转载自 开源中国社区

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册