王筝的博客
ruby学习
import java.io.*;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Collection;
class test  
{
    public static void main (String[] args) throws java.lang.Exception
    {
        int[] B = {6,7,8,9,1,2,3,4,5};
        int[][] c = {{1,   3,  5,  7},{10, 11, 16, 20}, {23, 30, 34, 50}};

        System.out.println(search_mini(B));
        System.out.println(search(B,1));
        System.out.println(Arrays.toString(search_2d_matrix(c,30)));
    }
    
    public static int[] search_2d_matrix(int[][] matrix, int target){
        int row = matrix.length, column = matrix[0].length;
        int begin = 0, end = row * column ;
        int[] result = {-1, -1};
        
        while (begin + 1 < end) {
            int mid = (begin +  end) / 2;
            int number = matrix[mid / column][mid % column];
            if (number == target) {
                result[0] = mid / column;
                result[1] = mid % column;
                return result;
            } else if (number < target) {
                begin = mid;
            } else {
                end = mid;
            }
        }
        return result;
    }
    
    
    public static int search_mini(int[] A){
        int begin = 0, end = A.length - 1; 
        while (begin < end && A[begin] >= A[end]) {
            int mid = (begin + end) / 2;  
            if (A[mid] > A[end]) { 
                begin = mid + 1;  
            } else if (A[mid] < A[begin]) {  
                end = mid;  
            } else {   // A[begin] == A[mid] == A[end] 
             begin = begin + 1;
            } 
        }
         return A[begin];  
    }
    
    public static int search(int[] A, int target){
        int begin = 0;
        int end = A.length ;
        while(begin < end){
            int p = (end + begin) / 2;
            if(A[p] == target) return p;
            else if(A[p] > A[begin]  ){
                if(target >= A[begin] && target < A[p]){
                    end = p;
                }
                else begin = p + 1;
            }
            else{
                if(target > A[p] && target <= A[end - 1] ){
                    begin = p + 1;
                }
                else end = p;
            }
            
        }
        return -1;
    }
}

 

 

Numeric Inputs

Numbers are even easier to validate than text. For number input types, the HTML5 spec gives youattributes like minmax, and step. Each of these do pretty much what you would expect.

min and max set the minimum and maximum values that the arrows in the input will allow. stepsets the increments for between possible values. There’s also value, which sets the starting value of the input.

Of course, you’ll probably notice that users can still type whatever number they want into numeric inputs. If you want to really limit possible values, consider a range instead.

Range Inputs

The range input type creates a slider on the page. It also has minmaxstep and value attributes. If you want to display the current value of the range when it changes, you’ll need to use some JavaScript to pull the value from the range. Here’s an example:

  // grab <input id="range-example" type="range" min="0" max="5" step="1"> from the page
    var rangeInput = document.querySelector('input#range-example');

    // grab <p id="output"></p> to display the output
    var output = document.querySelector('p#output');

    // update the display when the range changes
    rangeInput.onchange = function() {
        output.innerHTML = this.value;
    };
<input type=number>
<input type=number min=100 max=999 step=5>

 

http://guides.rubyonrails.org/v3.0.8/active_record_validations_callbacks.html#on

在特定的action里使用validates

The :on option lets you specify when the validation should happen. The default behavior for all the built-in validation helpers is to be run on save (both when you’re creating a new record and when you’re updating it). If you want to change it, you can use :on => :create to run the validation only when a new record is created or :on => :update to run the validation only when a record is updated.

class Person < ActiveRecord::Base
  # it will be possible to update email with a duplicated value
  validates_uniqueness_of :email, :on => :create
 
  # it will be possible to create the record with a non-numerical age
  validates_numericality_of :age, :on => :update
 
  # the default (validates on both create and update)
  validates_presence_of :name, :on => :save
end

 

 

pry(main)> puts “showlastupdate:{\”$gte\”:\”#{Date.today.to_s(:number)}\”}”
showlastupdate:{“$gte”:”20160601″}