Assuming you are using the v3 API, you may want to use the fitBounds method as follows:
<!DOCTYPE html>
<html> 
<head> 
   <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
   <title>Google Maps fitBounds</title> 
   <script src="http://maps.google.com/maps/api/js?sensor=false" 
           type="text/javascript"></script> 
</head> 
<body> 
   <div id="map" style="width: 500px; height: 350px;"></div> 
   <script type="text/javascript"> 
      var myOptions = { mapTypeId: google.maps.MapTypeId.ROADMAP };
      var map = new google.maps.Map(document.getElementById("map"), myOptions);
      var geocoder = new google.maps.Geocoder();
      geocoder.geocode({'address': 'US'}, function (results, status) {
         var ne = results[0].geometry.viewport.getNorthEast();
         var sw = results[0].geometry.viewport.getSouthWest();
         map.fitBounds(results[0].geometry.viewport);               
      }); 
   </script> 
</body> 
</html>
Screenshot:

In the above example, I'm getting the viewport of the US by geocoding. However, you could also create a LatLngBounds object yourself by passing the North East and South West points, and the fitBounds method will zoom and pan your map such that it will fit on the map canvas.