给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 例: 输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和最小. 问题分析:首先判断传入数组arr是否为空,为空直接返回0,新建数组array,用来表示每一步走后的数字之和,接下来步骤见代码注释 public static int minPathSum(int[][] arr) {…
示例 1: 输入: [   [0,0,0],   [0,1,0],   [0,0,0] ] 输出: 2 解释: 3x3 网格的正中间有一个障碍物. 从左上角到右下角一共有 2 条不同的路径: 1. 向右 -> 向右 -> 向下 -> 向下 2. 向下 -> 向下 -> 向右 -> 向右 思路分析这个问题和上一篇路径题的分析一样,不同之处在于,加了障碍物.那么我们可以重新定义一个二维数组,用来返回路径数,具体思路见代码注释. public static int uniqu…
示例 1: 输入: m = 3, n = 2 输出: 3 解释: 从左上角开始,总共有 3 条路径可以到达右下角. 1. 向右 -> 向右 -> 向下 2. 向右 -> 向下 -> 向右 3. 向下 -> 向右 -> 向右 示例 2: 输入: m = 7, n = 3 输出: 28 下面我们先说用递归如何解决此题: /** * * @param m * @param n * @return * * 递归方法:根据题意我们可以分析得出,计F(m,n)为到达横坐标为m,纵坐…
给定两个字符串 s 和 t,它们只包含小写字母.字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母.请找出在 t 中被添加的字母. 示例: 输入: s = "abcd" t = "abcde" 输出: e 解题思路:该题的解法和上一篇我们解决问题的思路一样,同样此题我们需要定义两个数组arr1和arr2分别存储字符串s和t每一个字符出现的次数,遍历统计字符串每一个字符出现的次数,最后遍历,找出arr1和arr2不相等,不相等的坐标存储的就是字符串t中添加…
package algorithms; /* 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null. public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } */ /* * 首先判断链表中是否有环 思路是用两个指针,同时从链表的节点出发 * 一个走的慢,一个走的快 * 如果两个指针不能相遇则无环,否则有环 * * 如何找到环的入口? * 还是先…
题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字. 比如输入一个长度为9的数组{1,2.3.2,2.2.5,4.2}, 因为数组中数字2出现了5次,超过数组的长度的一半,因此输出2 一种办法是先把数组排序.那么超过一半的元素一定是数组最中间的元素. 另外一种办法比較抽象.设一个变量保存当前值.设一个次数,当前值与下一个值进行比較.假设相等,次数加一,假设不相等.次数减一.假设次数减到0了还是不相等,就把当前值替换掉. 代码例如以下: #include <stdio.h> #i…
B. Position in Fraction time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output You have a fraction . You need to find the first occurrence of digit c into decimal notation of the fraction after de…
indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1. let a = [2, 9, 7, 8, 9]; a.indexOf(2); // 0 a.indexOf(6); // -1 a.indexOf(7); // 2 a.indexOf(8); // 3 a.indexOf(9); // 1 if (a.indexOf(3) === -1) { // element doesn't exist in array } 语法 arr.indexOf(sear…
寻找前后两项比值趋于 (√5+1)/2的广义Fibonacci数列 找到了一个帖子:这个帖子 //待补充…
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include "stdafx.h" #include<iostream> #include<vector> #include<algorithm> #include<numeric> #include<list> #include<iterator> #inc…
// test14.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include<string> #include<cctype> #include <vector> #include<exception> #include <initializer_list> using namespace std; class Solution…
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } }; */ class Solution { public: TreeNode* KthNode(TreeNode* pRoot, int k) { //中序递归     int count = 0;              if(co…
题目: 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,下标 ,a ,b , c 对应数相加等于 targe 找出所有满足条件且不重复的三元组下标 解析: 在一个list里面找出来三个数字使这三个数字相加等于目标targe, 这里是一个list 我们去循环这里面的元素,我们利用for循环, 第一个取来,然后后剩下的元素分别取循环上一个循环剩下的元素.这样保证了不重复,最后验证下,如果找出来的数字的值满足a+b+c=targe ,且三个数不相等,我们认为…
3.耶稣有13个门徒.当中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个開始报号:1.2,3.1,2,3.... 凡是报到"3"就退出圈子.最后留在圈子内的人就是出卖耶稣的叛徒.请找出它原来的序号. int a[13] = {1,2,3,4,5,6,7,8,9,10,11,12,13}; int number = 13;//记录当前人数 int count = 0;//1,2,3报数 int i = 0; while (number > 1) { if…
""" #给定一个只包含正整数的非空数组,返回该数组中重复次数最多的前N个数字 #返回的结果按重复次数从多到少降序排列(N不存在取值非法的情况) 解题思路: 1.设定一个空字典,去存储列表中的值和值出现的次数 2.使用L.count()方法可以统计出L中值出现的次数 3.使用sorted方法可以进行排序,sorted(iterable,key,reverse) 注意key是函数 4.列表中的元祖取值 d[i][j] i是哪一个元祖,j是元祖中的第几个值 ""…
谷歌笔试题--给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含), 指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数. Google2009华南地区笔试题 给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含),指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数.比如,A=[1,0] K=21 那么输出结构应该为100. <pre name="code" class="…
/** 题目:hdu6003 Problem Buyer 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6003 题意:给定n个区间,以及m个数,求从n个区间中任意选k个区间,满足m个数都能在k个区间中找到一个包含它的区间,如果一个区间包含了x,那么 该区间不能再去包含另一个数,即k>=m.求最小的k.如果不存在这样的k,输出“IMPOSSIBLE!”. 思路:贪心; 对n个区间,先左端点进行由小到大排序,然后右端点由大到小.对m个数由小到大排序. 对…
# 自定义模板标签. 标签的作用,在模板中 实现逻辑,如if ,for 等 from django.template import Library from datetime import datetime register = Library() # 模板标签 可以 引用 views上下文中的变量 context # 设置 simple_tag中的 takes_context = Ture, context 参数必须写'前面' # def c_time(format_str='%Y-%m-%d…
题目 1 给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数. 2 要求: (1) 写一个函数 f(N) ,返回1 到 N 之间出现的“1”的个数.例如 f(12)  = 5. (2)在32位整数范围内,满足条件的“f(N) =N”的最大的N是多少. 设计思想 (1)一位数时 f(0)=0;f(1)=1;f(2-9)=1; (2)二位数时 f(10)=1+(0+1)=2; f(11)=(1+1)+(1+1)=4; f(12)=(1+1)+(2+1)=5; f(1…
题目:任意给定一个正整数N,求一个最小的正整数M(M>1),使得N*M的十进制表示形式里只含有1和0. 解法一:暴力求解.从1开始查找M,然后判断M*N=X这个数字是否只含有0,1. 解法二:由于没有直接的数学方法能帮我们直接得到M的值,所以我们只能进行搜索.由于相对M,乘积N*M具有明显的特征,需要搜索的空间要小很多,所以我们对乘积N*M进行搜索.如果N*M的结果有K位,则要循环2^K次,我们发现K的结果能轻易超过40,所以这个运行时间还是相当长.同余运算具有等价关系,mod N = i(0<…
题目:给定一个长度为N的数组,其中每个元素的取值范围都是1到N.判断数组中是否有重复的数字.(原数组不必保留) 方法1.对数组进行排序(快速,堆),然后比较相邻的元素是否相同.时间复杂度为O(nlogn),空间复杂度为O(1). 方法2.使用bitmap方法.定义长度为N/8的char数组,每个bit表示对应数字是否出现过.遍历数组,使用 bitmap对数字是否出现进行统计.时间复杂度为O(n),空间复杂度为O(n). 方法3.遍历数组,假设第 i 个位置的数字为 j ,则通过交换将 j 换到下…
题目:给定一个字符串里面只有"R" "G" "B" 三个字符,请排序,最终结果的顺序是R在前 G中 B在后. 要求:空间复杂度是O(1),且只能遍历一次字符串. 解析:本题的解法类似于快速排序partition算法,对于字符串str,利用两个下标start1,end1,start1初始时指向字符串的头部,end1初始时指向字符串的尾部,当str[start1]!='R',str[end1]!='B'时候,不能简单像原来的partition那样直接…
在一个由 'L' , 'R' 和 'X' 三个字符组成的字符串(例如"RXXLRXRXL")中进行移动操作.一次移动操作指用一个"LX"替换一个"XL",或者用一个"XR"替换一个"RX".现给定起始字符串start和结束字符串end,请编写代码,当且仅当存在一系列移动操作使得start可以转换成end时, 返回True. 示例 : 输入: start = "RXXLRXRXL", en…
一,问题描述 给定一个整数N,求解该整数最少能用多少个Fib数字相加得到 Fib数列,就是如: 1,1,2,3,5,8,13.... Fib数列,满足条件:Fib(n)=Fib(n-1)+Fib(n-2)   Fib(0)=1   Fib(1)=1:Fib数字,就是Fib数列中的某个数. 比如70 = 55+13+2,即一共用了3个fib数字得到 二,问题求解 ①求出所有小于等于N的Fib数字 //获得小于等于n的所有fib数 private static ArrayList<Integer>…
最近在项目中踩了一个深坑--"Golang中一个包含nil指针的接口不是nil接口",总结下分享出来,如果你不是很理解这句话,那推荐认真看下下面的示例代码,避免以后写代码时踩坑. 示例一 先一起来看下这段代码,你感觉有没有问题呢? type IPeople interface { hello() } type People struct { } func (p *People) hello() { fmt.Println("github.com/meetbetter"…
在SQL Server中,如何找到一张表或某个索引拥有那些页面(page)呢? 有时候,我们在分析和研究(例如,死锁分析)的时候还真有这样的需求,那么如何做呢? SQL Server 2012提供了一个无文档的DMF(sys.dm_db_database_page_allocations)可以实现我们的需求,sys.dm_db_database_page_allocations有下面几个参数: ·         @DatabaseId:    数据库的ID,可以用DB_ID()函数获取某个数据…
共享内存(shared memory)是位于SM上的on-chip(片上)一块内存,每个SM都有,就是内存比较小,早期的GPU只有16K(16384),现在生产的GPU一般都是48K(49152). 共享内存由于是片上内存,因而带宽高,延迟小(较全局内存而言),合理使用共享内存对程序效率具有很大提升. 下面是使用共享内存对一个数组进行求和,使用全局内存进行归约求和可以浏览https://www.cnblogs.com/xiaoxiaoyibu/p/11397205.html #pragma on…
分析,是一个dp的题目, 设f[i]表示以i为结尾的最大值,g[i]表示以i结尾的最小值,那么 f[i+1] = max{f[i]*arr[i+1], g[i]*arr[i+1],arr[i+1]} ,只有这三种情况. 考虑到f[i],g[i]只和i-1有关,那么可以用局部变量即可搞定,而不用使用数组. 1 import java.lang.Math; public class Solution { public double maxProduct(double[] arr) { double…
第五题 (Map)设计Account 对象如下: private long id; private double balance; private String password; 要求完善设计,使得该Account 对象能够自动分配id. 给定一个List 如下: List list = new ArrayList(); list.add(new Account(10.00, “1234”)); list.add(new Account(15.00, “5678”)); list.add(ne…
取得一个包含匹配的元素集合中每一个元素的所有唯一同辈元素的元素集合,用于筛选同辈元素的表达式 $("#pageList").click(function(){ $(this).parent("li").addClass("active"); $(this).parent("li").siblings("li").removeClass("active"); }); 点击时当前按钮添加ac…