技术文章

367 Valid Perfect Square 有效的完全平方数

耗尽温柔 提交于 2021-02-19 11:01:25
给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。 注意:不要使用任何内置的库函数,如 sqrt。 示例 1: 输入: 16 输出: True 示例 2: 输入: 14 输出: False 详见:https://leetcode.com/problems/valid-perfect-square/description/ C++: 方法一: class Solution { public: bool isPerfectSquare(int num) { for(int i=1;i<=num/i;++i) { if(i*i==num) { return true; } } return false; } }; 方法二: class Solution { public: bool isPerfectSquare(int num) { long left=0,right=num; while(left<=right) { long mid=left+(right-left)/2,t=mid*mid; if(t==num) { return true; } else if(t<num) { left=mid+1; } else { right=mid-1; } } return false; } }; 参考:https://www

HP大中华区总裁孙振耀退休感言

风格不统一 提交于 2021-02-19 11:01:00
一、关于工作与生活     我有个有趣的观察,外企公司多的是25-35岁的白领,40岁以上的员工很少,二三十岁的外企员工是意气风发的,但外企公司40岁附近的经理人是很尴尬的。我见过的40岁附近的外企经理人大多在一直跳槽,最后大多跳到民企,比方说,唐骏。外企员工的成功很大程度上是公司的成功,并非个人的成功,西门子的确比国美大,但并不代表西门子中国经理比国美的老板强,甚至可以说差得很远。而进外企的人往往并不能很早理解这一点,把自己的成功90%归功于自己的能力,实际上,外企公司随便换个中国区总经理并不会给业绩带来什么了不起的影响。好了问题来了,当这些经理人40多岁了,他们的薪资要求变得很高,而他们的才能其实又不是那么出众,作为外企公司的老板,你会怎么选择?有的是只要不高薪水的,要出位的精明强干精力冲沛的年轻人,有的是,为什么还要用你?     从上面这个例子,其实可以看到我们的工作轨迹,二三十岁的时候,生活的压力还比较小,身体还比较好,上面的父母身体还好,下面又没有孩子,不用还房贷,也没有孩子要上大学,当个外企小白领还是很光鲜的,挣得不多也够花了。但是人终归要结婚生子,终归会老,到了40岁,父母老了,要看病要吃药,要有人看护,自己要还房贷,要过基本体面的生活,要养小孩……那个时候需要挣多少钱才够花才重要。所以,看待工作,眼光要放远一点,一时的谁高谁低并不能说明什么。    

迅为4412开发板入门准备

[亡魂溺海] 提交于 2021-02-19 11:00:31
一、硬件连接 4412开发板的HDMI口,小HDMI口输出HDMI信号,大HDMI口用来连接各种屏(只是用了HMDI的线,并不是标准的HDMI)。 二、安装超级终端 首先需要安装USB转串口,可以是CH340驱动,或者是 PL2303驱动。 连接硬件时也要注意,精英版的调试串口是串口2。连接串口1没有信号。 然后安装hyperterminal(超级终端v2.4.8)。设置的波特率为115200 三、拨码开关的使用 开关拨到外侧是1,里面是0 进入uboot:开机启动时,读秒时输入任一值。就能进入uboot模式。 设置PC机和开发板以太网的例子: 1)设置PC主机的IPv4地址 2)设置开发板的ip地址在同一网段 3)ping一下测试 四、虚拟机和ubuntu 安装wmware,10的版本支持64位,把下载的镜像导入wmware中。 sudo passwd ubuntu中安装ssh。 ubuntu扩展内存 五、常用的软件 source insight 用来看代码 beyond compare 4对比分析 notepad++ 记事本 六、adb功能 adb是android的调试工具,安装好后,就可以用开发板USB连接电脑了。 然后下载USB_fastboot_tool工具。 七、4412开发板镜像烧录 硬件版本分为SCP1G、SCP2G、POP1G,分别对应不同的镜像文件

php抽奖算法(适用于九宫格、大转盘)

拜拜、爱过 提交于 2021-02-19 11:00:09
/* * 不同概率的抽奖原理就是把0到*(比重总数)的区间分块 * 分块的依据是物品占整个的比重,再根据随机数种子来产生0-* 中的某个数 * 判断这个数是落在哪个区间上,区间对应的就是抽到的那个物品。 * 随机数理论上是概率均等的,那么相应的区间所含数的多少就体现了抽奖物品概率的不同。 */ /** * 抽奖方法 * @return [array] [抽奖情况] */ public function doDraw() { // 奖品数组 $proArr = array( // id => 奖品等级, name => 奖品名称, v => 奖品权重 array('id'=>1,'name'=>'超级奖品','v'=>0), array('id'=>2,'name'=>'特等奖','v'=>1), array('id'=>3,'name'=>'一等奖','v'=>5), array('id'=>4,'name'=>'二等奖','v'=>10), array('id'=>5,'name'=>'三等奖','v'=>12), array('id'=>6,'name'=>'四等奖','v'=>22), array('id'=>7,'name'=>'五等奖','v'=>50), array('id'=>8,'name'=>'六等奖','v'=>100), array('id'=>9,'name

完整的一次 HTTP 请求响应过程(一)

帅比萌擦擦* 提交于 2021-02-19 10:59:48
因特网无疑是人类有史以来最伟大的设计,它互联了全球数亿台计算机、通讯设备,即便位于地球两端的用户也可在顷刻间完成通讯。 可以说『协议』是支撑这么一个庞大而复杂的系统有条不紊运作的核心,而所谓『协议』就是通讯双方所必须遵守的规则,在这种规则下,不同的数据报可能被解析为不同的响应动作。 简而言之,『协议』就是指如果发送和接收方按照这个规则进行数据报文的发送,即可在基本的数据传输之上得到某些特殊的功能或服务,否则你的数据别人是不认识的。例如:遵循 TCP 协议的两端,可以在不可靠的网络传输中得到可靠的数据传输能力。 整个计算机网络是分层的,有七层模型,也有五层模型,个人觉得五层模型更利于理解。我们从上至下的介绍这五个层,它们分别是, 应用层,运输层,网络层,数据链路层和物理层 。 应用层 『应用层』算是距离用户最近的一层了,主机上的一个个的进程就构成了『应用层』。比如你在你的浏览器地址栏输入了 「www.baidu.com」,你的浏览器在应用层会做哪些事情呢? 首先浏览器会使用 DNS 协议返回域名「www.baidu.com」所对应的 IP 地址,关于 DNS 我们待会详细介绍。 接着,应用层决定创建一个『TCP 套接字』,然后将这个请求动作封装成一个 Http 数据报并推入套接字中。 套接字分为两种类型,『TCP 套接字』和『UDP 套接字』,应用层同时可能会有几十个数据报的发出

稠州银行数字化转型:打造银行数据大脑,建立全新数字化DNA

家住魔仙堡 提交于 2021-02-19 10:59:21
数字经济时代,银行如何进行数字化转型?业务模式转型与科技转型如何协同并进? 2019年1月4日,在上海蚂蚁金服ATEC城市峰会上,浙江稠州商业银行(以下简称“稠州银行”)副行长兼首席信息官程杰分享了稠州银行的数字化建设实践之旅。我们可以看到,一家立足小微金融服务的银行机构,如何构筑全新的数字化基因,以科技创新快速进入数字化时代。 对于未来金融科技、数字银行的发展,程杰认为,银行数字化转型的关键是盘活数据资产打造核心能力,践行数据驱动的应用场景建设,广泛运用金融科技手段,提供极致体验的智能化金融服务。 稠州银行,有着CBA那样追求更快、更高、更强的精神。据了解,稠州银行成立30年来,一直致力于做小微企业和市场商户的商贸金融伙伴。从扎根全球最大的小商品集散中心义乌,到全面进入长三角经济圈核心区域,稠州银行始终紧随市场经济的步伐,关注小微客户的金融服务需求。 自2006年起,稠州银行实施“走出去”战略,全面布局长三角。截至目前,稠州银行的体量规模达到资产规模2000亿元,分行14家,范围覆盖9个省。 到了新型数字化时代,稠州银行开启了零售业务转型与数字化科技转型的创新战略,来保证银行高效、高质量的金融服务。程杰指出,普惠金融服务需要不断突破边界,包括数据的边界、服务半径的边界,以数字化的方式降低边缘成本,突破商业模式、个性化服务的瓶颈和制约。程杰表示,在新型互联网时代

北京师范大学第十六届程序设计竞赛决赛-重现赛 ACFGI

天涯浪子 提交于 2021-02-19 10:58:58
A 塞特斯玛斯塔 题目描述 quailty是一名狂热的ACM音游选手,沉迷各种音乐游戏,比如Lunatic Rave 2,osu!之类的。 今天,quailty玩的是国内游戏厂商雷亚(并不是赞助商)出品的一款音乐游戏Cytus。 游戏中,玩家需要随着游戏界面中上下移动的扫描线来适时演奏对应音符。 当上下移动的黑色线(扫描线)与圆形的物体(音符)的圆心重合时点击音符。 普通音符(图中第一种)只需点击即可。 锁链音符(图中第二种)将带箭头的音符(滑块)按下后不要松开,并将滑块沿着斜线和圆点组成的路径拖动,直至拖动到最后一个圆点处方可松开。注意拖动过程中应保持滑块圆心始终与扫描线重合。 长按音符(图中第三种)按下后不要松开,原地不动,等扫描线到达其末端并显示判定结果后方可松开。 Cytus共有五种判定,从好到坏依次为:彩PERFECT、黑PERFECT、GOOD、BAD、MISS。 得分中包括了90%的“判定分”和10%的“连击分”,而连击分是累进计算的,断COMBO对其影响很大,往往只要有1个MISS就会损失几万的连击分。 彩PERFECT和黑PERFECT在计算得分时一视同仁,只要全部PERFECT即可获得满分,满分为1000000,被称为MILLION Master。 quailty真的很严格,如果打完一把没有拿到MILLION Master,他就认为自己是NAIVE Noob。

php跨域

社会主义新天地 提交于 2021-02-19 10:58:44
跨域待测 <?php $ret = array( 'name' => isset($_POST['name'])? $_POST['name'] : '', 'gender' => isset($_POST['gender'])? $_POST['gender'] : '' ); header('content-type:application:json;charset=utf8'); $origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : ''; $allow_origin = array( 'http://www.client.com', 'http://www.client2.com' ); if(in_array($origin, $allow_origin)){ header('Access-Control-Allow-Origin:'.$origin); header('Access-Control-Allow-Methods:POST'); header('Access-Control-Allow-Headers:x-requested-with,content-type'); } echo json_encode($ret); ?> 转自: http://blog.csdn.net

快速学习-Feign远程调用

对着背影说爱祢 提交于 2021-02-19 10:58:25
2 Feign远程调用 在前后端分离架构中,服务层被拆分成了很多的微服务,服务与服务之间难免发生交互,比如:课程发布需要调用 CMS服务生成课程静态化页面,本节研究微服务远程调用所使用的技术。 下图是课程管理服务远程调用CMS服务的流程图: 工作流程如下: 1、cms服务将自己注册到注册中心。 2、课程管理服务从注册中心获取cms服务的地址。 3、课程管理服务远程调用cms服务。 2.1 Ribbon 2.1.1 Ribbon介绍 Ribbon是Netflix公司开源的一个负载均衡的项目(https://github.com/Netflix/ribbon),它是一个基于HTTP、 TCP的客户端负载均衡器。 1、什么是负载均衡? 负载均衡是微服务架构中必须使用的技术,通过负载均衡来实现系统的高可用、集群扩容等功能。负载均衡可通过 硬件设备及软件来实现,硬件比如:F5、Array等,软件比如:LVS、Nginx等。 如下图是负载均衡的架构图: 用户请求先到达负载均衡器(也相当于一个服务),负载均衡器根据负载均衡算法将请求转发到微服务。负载均衡 算法有:轮训、随机、加权轮训、加权随机、地址哈希等方法,负载均衡器维护一份服务列表,根据负载均衡算法 将请求转发到相应的微服务上,所以负载均衡可以为微服务集群分担请求,降低系统的压力。 2、什么是客户端负载均衡? 上图是服务端负载均衡

面试官:说说Redis的过期键删除策略吧!(高频)

这一生的挚爱 提交于 2021-02-19 10:58:10
点击上方“ 趣学程序 ”,关注公众号 面试刷图,查缺补漏 划重点:Redis的过期键删除策略也是面试中经常会被问的,我最近面试,被问到了好几次。 对于Redis服务器来说,内存资源非常宝贵,如果一些过期键一直不被删除,就会造成资源浪费,因此我们需要考虑一个问题:如果一个键过期了,它什么时候会被删除呢? 1. 常见的删除策略 常见的删除策略有以下3种: 定时删除 在设置键的过期时间的同时,创建一个定时器,让定时器在键的过期时间来临时,立即执行对键的删除操作。 惰性删除 放任过期键不管,每次从键空间中获取键时,检查该键是否过期,如果过期,就删除该键,如果没有过期,就返回该键。 定期删除 每隔一段时间,程序对数据库进行一次检查,删除里面的过期键,至于要删除哪些数据库的哪些过期键,则由算法决定。 其中定时删除和定期删除为主动删除策略,惰性删除为被动删除策略。 接下来我们一一讲解。 1.1 定时删除策略 定时删除策略通过使用定时器,定时删除策略可以保证过期键尽可能快地被删除,并释放过期键占用的内存。 因此,定时删除策略的优缺点如下所示: 优点:对内存非常友好 缺点:对CPU时间非常不友好 举个例子,如果有大量的命令请求等待服务器处理,并且服务器当前不缺少内存,如果服务器将大量的CPU时间用来删除过期键,那么服务器的响应时间和吞吐量就会受到影响。 也就是说,如果服务器创建大量的定时器