temp

Leetcode-探索 | 旋转数组

落爺英雄遲暮 提交于 2020-02-24 09:57:41
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] 向右旋转 3 步: [5,6,7,1,2,3,4] 示例 2: 输入: [-1,-100,3,99] 和 k = 2 输出: [3,99,-1,-100] 解释: 向右旋转 1 步: [99,-1,-100,3] 向右旋转 2 步: [3,99,-1,-100] 说明: 尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。 要求使用空间复杂度为 O(1) 的原地算法。 —————————————————————————————————————————————— 1. 暴力模拟,O(n*k),TLE: 1 class Solution(object): 2 def rotate(self, nums, k): 3 """ 4 :type nums: List[int] 5 :type k: int 6 :rtype: void Do not return anything, modify nums in-place instead. 7 """ 8 extraLattice = 0 9

LeetCode(二)—— 旋转数组

☆樱花仙子☆ 提交于 2020-02-24 09:55:04
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] 向右旋转 3 步: [5,6,7,1,2,3,4] 示例 2: 输入: [-1,-100,3,99] 和 k = 2 输出: [3,99,-1,-100] 解释: 向右旋转 1 步: [99,-1,-100,3] 向右旋转 2 步: [3,99,-1,-100] 说明: 尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。 要求使用空间复杂度为 O(1) 的原地算法。 class Solution { public void rotate(int[] nums, int k) { if(k > nums.length){ k = k - nums.length; }else if(k == nums.length){ return ; } int [] temp = new int[nums.length]; System.arraycopy(nums, nums.length-k, temp, 0, k); System.arraycopy(nums, 0, temp, k,

windows服务定时任务

风流意气都作罢 提交于 2020-02-23 07:31:16
其实定时任务时不时会碰到,只不过解决方案也不是只有一个,网上也有很多文章,但是没有一篇说得很清楚,尤其是安装环节,今天就着重说一下安装, 其他步骤带过,C#开发windows服务,开发,安装,调试 1. 添加安装程序 (找的其他博客的配图) 之后我们可以看到上图,自动为我们创建了ProjectInstaller.cs以及2个安装的组件。 2 )修改安装服务名 右键serviceInsraller1,选择属性,将ServiceName的值改为ServiceTest。 3 )修改安装权限 右键serviceProcessInsraller1,选择属性,将Account的值改为LocalSystem。 2.业务代码 (读取配置文件里面的所有节点,然后开启多个定时任务)app.config配置如下: protected override void OnStart(string[] args) { NameValueCollection urls = ConfigurationManager.AppSettings; List<Timer> timers = new List<Timer> (); int i =1; foreach (var item in urls) { try { string values = urls["url" + i]; string[] strs =

前端安全问题及解决办法

白昼怎懂夜的黑 提交于 2020-02-22 18:47:53
前端安全问题及解决办法 xss(Cross-site Scripting)脚本注入攻击 核心:恶意脚本注入 描述:攻击者通过在目标网站上注入恶意脚本,使之在用户的浏览器上运行。利用这些恶意脚本,攻击者可获取用户的敏感信息如 Cookie、SessionID 等,进而危害数据安全。 解决方案: 1、打开npmjs.com下载xss插件,引入xss插件之后就没有任何问题了。 2、将html进行内容转换,或者将 var HtmlUtil = { /*1.用浏览器内部转换器实现html转码*/ htmlEncode:function (html){ //1.首先动态创建一个容器标签元素,如DIV var temp = document.createElement ("div"); //2.然后将要转换的字符串设置为这个元素的innerText(ie支持)或者textContent(火狐,google支持) (temp.textContent != undefined ) ? (temp.textContent = html) : (temp.innerText = html); //3.最后返回这个元素的innerHTML,即得到经过HTML编码转换的字符串了 var output = temp.innerHTML; temp = null; return output; }, /*2

dij算法理解

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-22 15:55:08
(不能有负权边) !长度步数显示法! 集合1:已最短点集合 集合2:未最短点到源点距离集合 第一开始把和源点连接的点的距离排序起来 那么2里最小的一定是源点到这个点的最短路径 因为从源点如果想到这个点有一条其它更短路径 那么这个路径只能是1集合到这个点,如果从2集合就已经更长了 而集合1里到这个点的路径已经被松弛过了是最短的 接下来再往下松弛(用当前节点更新别的节点的距离) 那么2里最小的,一定是源点到这个点的最短路径 因为从源点出发,如果不是经历的当前同样路径,想更短 那么这个路径只能是1集合到这个点,如果2集合就已经更长了 而集合1里到这个点的路径已经被松弛过了是最短的 1:dij本质上其实是贪心 2:不可能用比当前最短的路径长的路径去更新别的路径 3:每次都会找到一个最短的路径 #include<iostream> #include<cstdio> #include<cstdlib> using namespace std; inline int read() { int x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9') {if(ch=='-')f=-1; ch=getchar();} while(ch>='0'&&ch<='9') {x=x*10+ch-'0'; ch=getchar();} return x*f; }

如何将SQLite数据几列数据写入服务器的SQLSERVER数据库

纵饮孤独 提交于 2020-02-22 14:02:41
SQLite的表和SQLSERVER是一样的 有三个列 CompanyCode CompanyName UpdateFlag Dim ds As DataSet = New DataSet() Dim sql As String sql = " Select * from M_Acc_Title where CompanyCode = '" & CompanyCode & "' and UpdateFlag= '" & UpdateFlag& "'" ds = SQLiteHelper.Query(GlobalCN.LocalCnString, sql)'获取SQLite数据 想将查询出来的结果插入或者更新到服务器上面。 如果,服务器数据库存在相同的CompanyCode ,将相对的CompanyName更新上去, 不存在则插入。 你上面的代码不是拿出了sqlite的数据嘛 你再拿出sqlserver的数据 判断sqlserver中的数据是否存在相同的CompanyCode 如果存在就更新 不存在就新增 dataset里的表,可以批量更新到一个临时表下。然后用merge命令来更新或插入到 目标表就可以了。 merge 目标表 using #临时表 on #临时表.Id = 目标表.Id when matched then update set Name=#临时表.Name --

LeetCode:1010. Pairs of Songs With Total Durations Divisible by 60 总持续时间可被 60 整除的歌曲(C语言)

China☆狼群 提交于 2020-02-22 06:33:59
题目描述: 在歌曲列表中,第 i 首歌曲的持续时间为 time[i] 秒。 返回其总持续时间(以秒为单位)可被 60 整除的歌曲对的数量。形式上,我们希望索引的数字 i < j 且有 (time[i] + time[j]) % 60 == 0。 示例 1: 输入:[30,20,150,100,40] 输出:3 解释:这三对的总持续时间可被 60 整数: (time[0] = 30, time[2] = 150): 总持续时间 180 (time[1] = 20, time[3] = 100): 总持续时间 120 (time[1] = 20, time[4] = 40): 总持续时间 60 示例 2: 输入:[60,60,60] 输出:3 解释:所有三对的总持续时间都是 120,可以被 60 整数。 提示: 1 <= time.length <= 60000 1 <= time[i] <= 500 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/pairs-of-songs-with-total-durations-divisible-by-60 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 解答: int numPairsDivisibleBy60(int* time, int timeSize) {

小程序上传图上片

五迷三道 提交于 2020-02-20 04:46:32
wx.chooseImage 从本地相册选择图片或使用相机拍照。 调用成功返回一个tempFilePaths数组 图片的本地临时文件路径列表 (本地路径) 和一个tempFiles数组 图片的本地临时文件列表 wx . chooseImage ( { count : 3 , //设置一次最多可以选择的图片张数 sizeType : [ 'original' , 'compressed' ] , //设置所选的图片的尺寸原图或压缩图 sourceType : [ 'album' , 'camera' ] , //设置选择图片的来源(相册、相机) success : res => { const images = this . data . images . concat ( res . tempFilePaths ) //concat函数用来联接两个数组 // 限制最多只能留下3张照片并吧文件路径存到images let thisimages = images . length <= 3 ? images : images . slice ( 0 , 3 ) this . setData ( { images : thisimages } ) } , fail : res => { console . log ( "调用未成功" , res ) } } )

分子量(Molar Mass, ACM/ICPC Seoul 2007, UVa1586)

亡梦爱人 提交于 2020-02-17 10:23:14
分子量(Molar Mass, ACM/ICPC Seoul 2007, UVa1586) 给出一种物质的分子式(不带括号),求分子量。本题中的分子式只包含4种原子,分别为C, H, O, N,原子量分别为12.01, 1.008, 16.00, 14.01(单位:g/mol)。例如,C6H5OH的分子量为94.108g/mol。 # include <stdio.h> # include <string.h> # define maxn 10005 char s [ maxn ] ; int main ( ) { scanf ( "%s" , s ) ; double sum = 0 ; int i = 0 , j = 0 , temp = 0 ; while ( i < strlen ( s ) ) { j = i + 1 ; if ( ( s [ i ] == 'C' ) || ( s [ i ] == 'H' ) || ( s [ i ] == 'O' ) || ( s [ i ] == 'N' ) ) { while ( ( s [ j ] != 'C' ) && ( s [ j ] != 'H' ) && ( s [ j ] != 'O' ) && ( s [ j ] != 'N' ) && ( j < strlen ( s ) ) ) { //j指向下一个原子 j +

python常用排序算法

空扰寡人 提交于 2020-02-16 22:55:41
常见排序算法 算法:一个计算过程,解决问题的方法 程序 = 数据结构 + 算法 1.算法基本概念 1.时间复杂度 用什么方式来体现算法运行的快慢? 通过运行的次数表示时间复杂度 示例: print("hello world") print("hello python") print("hello algorithm") #以上时间复杂度O(1) for i in range(n): print("hello world") for j in range(n): print("hello world") #时间复杂度O(n**2) while n>1: print(n) n = n//2 时间复杂度记为O(log 2 n)或O(log n) 当算法过程出现循环折半的时候复杂度式子中会出现log n 时间复杂度小结 时间复杂度是用来计算算法运行的时间的一个式子(单位) 一般来说,时间复杂度高的算法比复杂度低的算法慢。 创建的时间复杂度(按效率排序) O(1) < O(logn) < O(nlogn) < O(n2) < O(n2 log n) < O(n3) 复杂问题的时间复杂度 O(n!) O(2**n) O(n**n) 如何简单快速地判断算法复杂度 快速判断算法复杂度,适用于绝大多数简单情况 确定问题规模n 循环减半过程---> log n k层关于n的循环 --->n**k