num

算法题目

£可爱£侵袭症+ 提交于 2020-03-15 19:24:23
1. 求二进制数中1的个数 (题目与解法均来自《编程之美》第二章)   题目:对于一个字节(8bit)的变量,求其二进制表示中“1”的个数,要求算法的执行效率尽可能地高。   解法1:举一个8位二进制的例子来分析,对于二进制操作,我们知道,除以一个2,原来的数字就会少个0,如果除的过程中有余,那么就表示当前位置有一个“1”。   以10 100 010 为例:   第一次除以2时,商为1 010 001 ,余为0;   第二次除以2时,商为101 000,余为1.因此可以利用整形数据除法的特点,通过相除和判断余数的值来进行分析,代码如下: int Count(int v) { int num=0; while(v) { if(v%2==1){ num++;//判断是否有余1,并记录 } v=v/2; } return num; }   解法2:除操作比较复杂,可以通过向右唯一的操作达到目的,唯一的不同在于,位移之后如何判断是否有“1”的存在。例如:10 100 001 ,在向右移位的过程中,我们会把最后一位直接丢掉,因此,判断最后一位是否为“1”,可以通过“与”操作达到目的。将这个8位数与000 000 01 进行“与”操作,如果结果为“1”,则表明这个8位数的最后一位是1,否则为0,代码如下: int Count(int v) { int num=0; while(v) {

i = i+1 和 i += 1

前提是你 提交于 2020-03-15 18:08:56
i = i+1 和 i += 1 对于不可变数据类型(str、int、tuple) 由于本身是不可变数据类型,执行后都会生产新的对象 x = 1 print(id(x)) # 1510566928 x += 1 print(id(x)) # 1510566960 --------------------------- x = 1 print(id(x)) # 1510566954 x = x + 1 print(id(x)) # # 1510566998 可变数据类型情况(list、dict) 可以看到 使用 += 并不会改变对象的内存地址 x = [1, 2] print(id(x)) # 2701823038387 x = x + [3, 4] print(id(x)) # 2701823038334 ------------------ x = [1, 2] print(id(x)) # 2701823038344 x += [3, 4] print(id(x)) # 2701823038344 注意 n = n + n 作用域问题内部为[1, 2, 1, 2], 外部仍为[1, 2] def num(n): n = n + n x = [1, 2] num(x) print(x) # [1, 2] -------------------- def num(n): n +=

12.经典计算题

China☆狼群 提交于 2020-03-15 11:51:53
星期天为 0; var num = 2; var b = (1000 % 7 + 2) % 7;//因为星期天为0 所以最后还要 % 7; console.log("1000天后是星期" + b); 百位:parseInt(/100) 十位:parseInt( %100/10) 个位:%10 来源: https://www.cnblogs.com/yzdwd/p/12496564.html

oracle PL、SQL(概念)

你离开我真会死。 提交于 2020-03-15 11:32:18
一 .PL/SQL 简介。    Oracle PL/SQL 语言( Procedural Language/SQL )是结合了 结构化查询 和 Oracle 自身过程控制 为一体的强大语言, PL/SQL 不但支持更多的数据类型,拥有自身的变量申明,赋值语句,而且还有条件,循环等流程控制语句。过程控制结构与 SQL 数据处理能力无缝的结合形成了强大的编程语言,可以创建过程和函数以及程序包。 二.优点: 1,支持 SQL      SQL 是访问数据库的标准语言,通过 SQL 命令,用户可以操纵数据库的数据。     PL/SQL 支持所有的 SQL 数据操纵命令、游标控制命令、事务控制命令、 SQL 函数、运算符和伪列。 2,支持面向对象编程      PL/SQL 支持面向对象的编程,在 PL/SQL 中可以创建类型,可以对类型进行继承,可以在子程序中重载方法等。 3,更好的性能      SQL 是非过程语言,只能一条一条的执行,而 PL/SQL 把一个 PL/SQL 统一进行编译后执行,同时还可以把编译好的 PL/SQL 块存储起来,以备重用,减少了应用程序和服务器之间的通信时间,所以 PL/SQL 是高效而快速的。 4,可移植性     使用 PL/SQL 编写的应用程序语言,可以移植到任何操作平台的 ORACLE 服务器,同时还可以编写可移植程序库,在不同环境中使用。

video视频播放

本小妞迷上赌 提交于 2020-03-15 09:14:04
<!DOCTYPE html><html lang="en" ><head><meta charset="UTF-8"><title>Video Player w/ React & GSAP 📺</title><style type="text/css"> #myvideo{ width: 800px; height: 600px; margin: 0 auto; } h3{ font-size: 20px; } .my_show{ width: 800px; height: 600px; border: solid 1px gray; }</style></head><body> <h3>我的音乐我做主</h3> <video id="myvideo" controls autoplay> <source src="video/de2.mp4" type="video/mp4"> </video><div> 播放时间: <span id="showTime"></span></div><br><div id="buttonDiv"> <input type="button" value="播放/暂停" onclick="PlayorPause()"> <input type="button" value="增加音量" onclick="AddYin()"> <input type

HDU 1215 七夕节 筛选法

被刻印的时光 ゝ 提交于 2020-03-15 05:46:11
这题我开始暴力,结果TLE,后来想到这种题应该都有精简的方法,就去网上搜,没想到新学了一招,筛选法,估计最小公倍数也能这样做了,哈哈 #include<stdio.h> #include<string.h> long long num[500005]; void shaixuan( ) { for( int i = 1; i < 500005; ++i ) num[i] = 1; for( int i = 2; i < 500005; ++i ) for( int j = 2; j * i < 500005; ++j ) num[i*j] += i; } int main( ) { shaixuan( ); int t,n; scanf( "%d",&t ); while( t-- ) { scanf( "%d",&n ); printf( "%I64d\n",num[n] ); } return 0; } 来源: https://www.cnblogs.com/Lvsi/archive/2011/05/05/2037247.html

[LeetCode]Add Digits

寵の児 提交于 2020-03-15 04:59:53
题目描述:( 链接 ) Given a non-negative integer num , repeatedly add all its digits until the result has only one digit. For example: Given num = 38 , the process is like: 3 + 8 = 11 , 1 + 1 = 2 . Since 2 has only one digit, return it. Follow up: Could you do it without any loop/recursion in O(1) runtime? 解题思路: 1 class Solution { 2 public: 3 int addDigits(int num) { 4 string cache = to_string(num); 5 int result = 0; 6 while (true) { 7 for (auto ix = cache.begin(); ix != cache.end(); ++ix) { 8 result += (*ix - '0'); 9 } 10 11 if (result <= 9) { 12 break; 13 } 14 cache = to_string(result); 15 result =

Arrays.asList的用法

我与影子孤独终老i 提交于 2020-03-15 02:29:29
16. 3Sum Closest 这道题让我们求最接近给定值的三数之和,是在之前那道 3Sum 三数之和 的基础上又增加了些许难度,那么这道题让我们返回这个最接近于给定值的值,即我们要保证当前三数和跟给定值之间的差的绝对值最小,所以我们需要定义一个变量result用来记录当前最小三个数的和,然后我们还是要先将数组排个序,然后开始遍历数组,思路跟那道三数之和很相似,都是先确定一个数,然后用两个指针left和right来滑动寻找另外两个数,每确定两个数,我们求出此三数之和sum,然后算和给定值的差的绝对值abs(sum-target),然后和abs(result-target)比较并更新结果result即可,代码如下: public class Solution { public int threeSumClosest(int[] num, int target) { int result = num[0] + num[1] + num[num.length - 1];//初始化 Arrays.sort(num); //选择一个数 for (int i = 0; i < num.length - 2; i++) { int start = i + 1, end = num.length - 1;//双指针指向最小数和最大数 while (start < end) { int sum =

16. 3Sum Closest

白昼怎懂夜的黑 提交于 2020-03-15 01:20:35
Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input would have exactly one solution. For example, given array S = {-1 2 1 -4}, and target = 1. The sum that is closest to the target is 2. (-1 + 2 + 1 = 2). https://leetcode.com/problems/3sum-closest/#/solutions http://www.cnblogs.com/EdwardLiu/p/4012459.html 先将数组排个序,然后开始遍历数组,思路跟那道三数之和很相似,都是先确定一个数,然后用两个指针left和right来滑动寻找另外两个数,每确定两个数,我们求出此三数之和,然后算和给定值的差的绝对值存在newDiff中,然后和diff比较并更新diff和结果closest即可: 这道题跟3Sum很像

tp5 validate验证规则

限于喜欢 提交于 2020-03-14 17:38:03
use think\Validate; # 验证某个字段必须 'name'=>'require' # 验证某个字段的值是否为纯数字(采用ctype_digit验证,不包含负数和小数点) 'num'=>'number' # 验证某个字段的值是否为整数(采用filter_var验证) 'num'=>'integer' # 验证某个字段的值是否为浮点数字(采用filter_var验证) 'num'=>'float' # 验证某个字段的值是否为布尔值(采用filter_var验证) 'num'=>'boolean' # 验证某个字段的值是否为email地址(采用filter_var验证) 'email'=>'email' # 验证某个字段的值是否为数组 'info'=>'array' # 验证某个字段是否为为 yes, on, 或是 1。这在确认"服务条款"是否同意时很有用, 'accept'=>'accepted' # 验证值是否为有效的日期 'date'=>'date' # 验证某个字段的值是否为纯字母, 'name'=>'alpha' # 验证某个字段的值是否为字母和数字, 'name'=>'alphaNum' # 验证某个字段的值是否为字母和数字,下划线_及破折号-, 'name'=>'alphaDash' # 验证某个字段的值只能是汉字, 'name'=>'chs' #